summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/bg/background.html4
-rw-r--r--ext/bg/js/anki-null.js44
-rw-r--r--ext/bg/js/anki.js (renamed from ext/bg/js/anki-connect.js)26
-rw-r--r--ext/bg/js/backend.js5
-rw-r--r--ext/fg/js/source-element.js77
-rw-r--r--ext/fg/js/source.js (renamed from ext/fg/js/source-range.js)60
-rw-r--r--ext/manifest.json3
7 files changed, 91 insertions, 128 deletions
diff --git a/ext/bg/background.html b/ext/bg/background.html
index fd3b7dd1..90ad9709 100644
--- a/ext/bg/background.html
+++ b/ext/bg/background.html
@@ -9,8 +9,7 @@
<script src="/mixed/lib/jszip.min.js"></script>
<script src="/mixed/lib/wanakana.min.js"></script>
- <script src="/bg/js/anki-connect.js"></script>
- <script src="/bg/js/anki-null.js"></script>
+ <script src="/bg/js/anki.js"></script>
<script src="/bg/js/api.js"></script>
<script src="/bg/js/database.js"></script>
<script src="/bg/js/deinflector.js"></script>
@@ -20,7 +19,6 @@
<script src="/bg/js/templates.js"></script>
<script src="/bg/js/translator.js"></script>
<script src="/bg/js/util.js"></script>
- <script src="/bg/js/util.js"></script>
<script src="/mixed/js/audio.js"></script>
<script src="/mixed/js/japanese.js"></script>
<script src="/mixed/js/request.js"></script>
diff --git a/ext/bg/js/anki-null.js b/ext/bg/js/anki-null.js
deleted file mode 100644
index d82f0e68..00000000
--- a/ext/bg/js/anki-null.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2016 Alex Yatskov <alex@foosoft.net>
- * Author: Alex Yatskov <alex@foosoft.net>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-class AnkiNull {
- async addNote(note) {
- return null;
- }
-
- async canAddNotes(notes) {
- return [];
- }
-
- async getDeckNames() {
- return [];
- }
-
- async getModelNames() {
- return [];
- }
-
- async getModelFieldNames(modelName) {
- return [];
- }
-
- async guiBrowse(query) {
- return [];
- }
-}
diff --git a/ext/bg/js/anki-connect.js b/ext/bg/js/anki.js
index 80c075fd..f0ec4571 100644
--- a/ext/bg/js/anki-connect.js
+++ b/ext/bg/js/anki.js
@@ -67,3 +67,29 @@ class AnkiConnect {
return requestJson(this.server, 'POST', {action, params, version: this.localVersion});
}
}
+
+class AnkiNull {
+ async addNote(note) {
+ return null;
+ }
+
+ async canAddNotes(notes) {
+ return [];
+ }
+
+ async getDeckNames() {
+ return [];
+ }
+
+ async getModelNames() {
+ return [];
+ }
+
+ async getModelFieldNames(modelName) {
+ return [];
+ }
+
+ async guiBrowse(query) {
+ return [];
+ }
+}
diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js
index f61e9742..e8c9452c 100644
--- a/ext/bg/js/backend.js
+++ b/ext/bg/js/backend.js
@@ -17,7 +17,7 @@
*/
-window.yomichan_backend = new class {
+class Backend {
constructor() {
this.translator = new Translator();
this.anki = new AnkiNull();
@@ -113,6 +113,7 @@ window.yomichan_backend = new class {
return true;
}
-};
+}
+window.yomichan_backend = new Backend();
window.yomichan_backend.prepare();
diff --git a/ext/fg/js/source-element.js b/ext/fg/js/source-element.js
deleted file mode 100644
index a8101382..00000000
--- a/ext/fg/js/source-element.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2016 Alex Yatskov <alex@foosoft.net>
- * Author: Alex Yatskov <alex@foosoft.net>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-class TextSourceElement {
- constructor(element, content='') {
- this.element = element;
- this.content = content;
- }
-
- clone() {
- return new TextSourceElement(this.element, this.content);
- }
-
- text() {
- return this.content;
- }
-
- setEndOffset(length) {
- switch (this.element.nodeName) {
- case 'BUTTON':
- this.content = this.element.innerHTML;
- break;
- case 'IMG':
- this.content = this.element.getAttribute('alt');
- break;
- default:
- this.content = this.element.value;
- break;
- }
-
- this.content = this.content || '';
- this.content = this.content.substring(0, length);
-
- return this.content.length;
- }
-
- setStartOffset(length) {
- return 0;
- }
-
- containsPoint(point) {
- const rect = this.getRect();
- return point.x >= rect.left && point.x <= rect.right;
- }
-
- getRect() {
- return this.element.getBoundingClientRect();
- }
-
- select() {
- // NOP
- }
-
- deselect() {
- // NOP
- }
-
- equals(other) {
- return other.element === this.element && other.content === this.content;
- }
-}
diff --git a/ext/fg/js/source-range.js b/ext/fg/js/source.js
index fa73b0a4..210dda12 100644
--- a/ext/fg/js/source-range.js
+++ b/ext/fg/js/source.js
@@ -174,3 +174,63 @@ class TextSourceRange {
return state.remainder > 0;
}
}
+
+
+class TextSourceElement {
+ constructor(element, content='') {
+ this.element = element;
+ this.content = content;
+ }
+
+ clone() {
+ return new TextSourceElement(this.element, this.content);
+ }
+
+ text() {
+ return this.content;
+ }
+
+ setEndOffset(length) {
+ switch (this.element.nodeName) {
+ case 'BUTTON':
+ this.content = this.element.innerHTML;
+ break;
+ case 'IMG':
+ this.content = this.element.getAttribute('alt');
+ break;
+ default:
+ this.content = this.element.value;
+ break;
+ }
+
+ this.content = this.content || '';
+ this.content = this.content.substring(0, length);
+
+ return this.content.length;
+ }
+
+ setStartOffset(length) {
+ return 0;
+ }
+
+ containsPoint(point) {
+ const rect = this.getRect();
+ return point.x >= rect.left && point.x <= rect.right;
+ }
+
+ getRect() {
+ return this.element.getBoundingClientRect();
+ }
+
+ select() {
+ // NOP
+ }
+
+ deselect() {
+ // NOP
+ }
+
+ equals(other) {
+ return other.element === this.element && other.content === this.content;
+ }
+}
diff --git a/ext/manifest.json b/ext/manifest.json
index 48308b17..ee3bd2ac 100644
--- a/ext/manifest.json
+++ b/ext/manifest.json
@@ -18,8 +18,7 @@
"fg/js/api.js",
"fg/js/document.js",
"fg/js/popup.js",
- "fg/js/source-element.js",
- "fg/js/source-range.js",
+ "fg/js/source.js",
"fg/js/util.js",
"fg/js/frontend.js"