diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-08-05 19:23:17 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-08-05 19:23:17 -0700 | 
| commit | 7e635d6382b0d96f596e2440b93e5935230367aa (patch) | |
| tree | 0a69ec1c49333c7dc49e0adb247a11f2ad69c6e7 | |
| parent | dfecef1f23435c933237794de6665f6fbacf90ec (diff) | |
more cleanup
| -rw-r--r-- | ext/bg/background.html | 1 | ||||
| -rw-r--r-- | ext/bg/js/api.js | 37 | ||||
| -rw-r--r-- | ext/bg/js/backend.js | 4 | ||||
| -rw-r--r-- | ext/bg/js/settings.js | 33 | ||||
| -rw-r--r-- | ext/bg/js/util.js | 46 | ||||
| -rw-r--r-- | ext/bg/settings.html | 1 | 
6 files changed, 62 insertions, 60 deletions
| diff --git a/ext/bg/background.html b/ext/bg/background.html index 1e9f3809..40f37b11 100644 --- a/ext/bg/background.html +++ b/ext/bg/background.html @@ -19,6 +19,7 @@          <script src="/bg/js/options.js"></script>          <script src="/bg/js/templates.js"></script>          <script src="/bg/js/translator.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/api.js b/ext/bg/js/api.js index bc2693e5..024ba75e 100644 --- a/ext/bg/js/api.js +++ b/ext/bg/js/api.js @@ -17,34 +17,21 @@   */ -/* - * Backend - */ - -function backend() { -    return chrome.extension.getBackgroundPage().yomichan_backend; -} - - -/* - * API - */ -  async function apiOptionsSet(options) {      // In Firefox, setting options from the options UI somehow carries references      // to the DOM across to the background page, causing the options object to      // become a "DeadObject" after the options page is closed. The workaround used      // here is to create a deep copy of the options object. -    backend().onOptionsUpdated(JSON.parse(JSON.stringify(options))); +    utilBackend().onOptionsUpdated(JSON.parse(JSON.stringify(options)));  }  async function apiOptionsGet() { -    return backend().options; +    return utilBackend().options;  }  async function apiTermsFind(text) { -    const options = backend().options; -    const translator = backend().translator; +    const options = utilBackend().options; +    const translator = utilBackend().translator;      const searcher = options.general.groupResults ?          translator.findTermsGrouped.bind(translator) : @@ -63,13 +50,13 @@ async function apiTermsFind(text) {  }  async function apiKanjiFind(text) { -    const options = backend().options; -    const definitions = await backend().translator.findKanji(text, dictEnabledSet(options)); +    const options = utilBackend().options; +    const definitions = await utilBackend().translator.findKanji(text, dictEnabledSet(options));      return definitions.slice(0, options.general.maxResults);  }  async function apiDefinitionAdd(definition, mode) { -    const options = backend().options; +    const options = utilBackend().options;      if (mode !== 'kanji') {          await audioInject( @@ -79,18 +66,18 @@ async function apiDefinitionAdd(definition, mode) {          );      } -    return backend().anki.addNote(dictNoteFormat(definition, mode, options)); +    return utilBackend().anki.addNote(dictNoteFormat(definition, mode, options));  }  async function apiDefinitionsAddable(definitions, modes) {      const notes = [];      for (const definition of definitions) {          for (const mode of modes) { -            notes.push(dictNoteFormat(definition, mode, backend().options)); +            notes.push(dictNoteFormat(definition, mode, utilBackend().options));          }      } -    const results = await backend().anki.canAddNotes(notes); +    const results = await utilBackend().anki.canAddNotes(notes);      const states = [];      for (let resultBase = 0; resultBase < results.length; resultBase += modes.length) {          const state = {}; @@ -105,7 +92,7 @@ async function apiDefinitionsAddable(definitions, modes) {  }  async function apiNoteView(noteId) { -    return backend().anki.guiBrowse(`nid:${noteId}`); +    return utilBackend().anki.guiBrowse(`nid:${noteId}`);  }  async function apiTemplateRender(template, data) { @@ -127,7 +114,7 @@ async function apiCommandExec(command) {          },          toggle: async () => { -            const options = backend().options; +            const options = utilBackend().options;              options.general.enable = !options.general.enable;              await optionsSave(options);              await apiOptionsSet(options); diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index 1c058433..f61e9742 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -50,9 +50,9 @@ window.yomichan_backend = new class {          }          if (options.anki.enable) { -            backend().anki = new AnkiConnect(options.anki.server); +            this.anki = new AnkiConnect(options.anki.server);          } else { -            backend().anki = new AnkiNull(); +            this.anki = new AnkiNull();          }          chrome.tabs.query({}, tabs => { diff --git a/ext/bg/js/settings.js b/ext/bg/js/settings.js index 1edbab01..ce9e14a2 100644 --- a/ext/bg/js/settings.js +++ b/ext/bg/js/settings.js @@ -17,39 +17,6 @@   */ -/* - * Utilities - */ - -function utilAnkiGetModelNames() { -    return backend().anki.getModelNames(); -} - -function utilAnkiGetDeckNames() { -    return backend().anki.getDeckNames(); -} - -function utilAnkiGetModelFieldNames(modelName) { -    return backend().anki.getModelFieldNames(modelName); -} - -function utilDatabaseGetDictionaries() { -    return backend().translator.database.getDictionaries(); -} - -function utilDatabasePurge() { -    return backend().translator.database.purge(); -} - -function utilDatabaseImport(data, progress) { -    return backend().translator.database.importDictionary(data, progress); -} - - -/* - * General - */ -  async function formRead() {      const optionsOld = await optionsLoad();      const optionsNew = $.extend(true, {}, optionsOld); diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js new file mode 100644 index 00000000..9dc57950 --- /dev/null +++ b/ext/bg/js/util.js @@ -0,0 +1,46 @@ +/* + * 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/>. + */ + + +function utilBackend() { +    return chrome.extension.getBackgroundPage().yomichan_backend; +} + +function utilAnkiGetModelNames() { +    return utilBackend().anki.getModelNames(); +} + +function utilAnkiGetDeckNames() { +    return utilBackend().anki.getDeckNames(); +} + +function utilAnkiGetModelFieldNames(modelName) { +    return utilBackend().anki.getModelFieldNames(modelName); +} + +function utilDatabaseGetDictionaries() { +    return utilBackend().translator.database.getDictionaries(); +} + +function utilDatabasePurge() { +    return utilBackend().translator.database.purge(); +} + +function utilDatabaseImport(data, progress) { +    return utilBackend().translator.database.importDictionary(data, progress); +} diff --git a/ext/bg/settings.html b/ext/bg/settings.html index 7833a21d..719c67a2 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -283,6 +283,7 @@          <script src="/bg/js/handlebars.js"></script>          <script src="/bg/js/options.js"></script>          <script src="/bg/js/templates.js"></script> +        <script src="/bg/js/util.js"></script>          <script src="/mixed/js/japanese.js"></script>          <script src="/mixed/js/request.js"></script> |