diff options
Diffstat (limited to 'ext/bg/js/yomichan.js')
| -rw-r--r-- | ext/bg/js/yomichan.js | 28 | 
1 files changed, 23 insertions, 5 deletions
| diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index 03f9d082..b3e8bf71 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -99,6 +99,10 @@ class Yomichan {          this.notifyTabs('options', this.options);      } +    getApiVersion() { +        return 1; +    } +      notifyTabs(name, value) {          chrome.tabs.query({}, (tabs) => {              for (const tab of tabs) { @@ -107,6 +111,16 @@ class Yomichan {          });      } +    ankiInvokeSafe(action, params, pool, callback) { +        this.api_getVersion({callback: (version) => { +            if (version === this.getApiVersion()) { +                this.ankiInvoke(action, params, pool, callback); +            } else { +                callback(null); +            } +        }}); +    } +      ankiInvoke(action, params, pool, callback) {          if (this.options.enableAnkiConnect) {              if (pool !== null && this.asyncPools.hasOwnProperty(pool)) { @@ -181,7 +195,7 @@ class Yomichan {      api_addDefinition({definition, mode, callback}) {          const note = this.formatNote(definition, mode); -        this.ankiInvoke('addNote', {note}, null, callback); +        this.ankiInvokeSafe('addNote', {note}, null, callback);      }      api_canAddDefinitions({definitions, modes, callback}) { @@ -192,7 +206,7 @@ class Yomichan {              }          } -        this.ankiInvoke('canAddNotes', {notes}, 'notes', (results) => { +        this.ankiInvokeSafe('canAddNotes', {notes}, 'notes', (results) => {              const states = [];              if (results !== null) { @@ -219,15 +233,19 @@ class Yomichan {      }      api_getDeckNames({callback}) { -        this.ankiInvoke('deckNames', {}, null, callback); +        this.ankiInvokeSafe('deckNames', {}, null, callback);      }      api_getModelNames({callback}) { -        this.ankiInvoke('modelNames', {}, null, callback); +        this.ankiInvokeSafe('modelNames', {}, null, callback);      }      api_getModelFieldNames({modelName, callback}) { -        this.ankiInvoke('modelFieldNames', {modelName}, null, callback); +        this.ankiInvokeSafe('modelFieldNames', {modelName}, null, callback); +    } + +    api_getVersion({callback}) { +        this.ankiInvoke('version', {}, null, callback);      }      api_getOptions({callback}) { |