diff options
| -rw-r--r-- | ext/bg/background.html | 4 | ||||
| -rw-r--r-- | ext/bg/js/anki-null.js | 44 | ||||
| -rw-r--r-- | ext/bg/js/anki.js (renamed from ext/bg/js/anki-connect.js) | 26 | ||||
| -rw-r--r-- | ext/bg/js/backend.js | 5 | ||||
| -rw-r--r-- | ext/fg/js/source-element.js | 77 | ||||
| -rw-r--r-- | ext/fg/js/source.js (renamed from ext/fg/js/source-range.js) | 60 | ||||
| -rw-r--r-- | ext/manifest.json | 3 | 
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" |