diff options
author | Alex Yatskov <alex@foosoft.net> | 2017-03-02 21:01:49 -0800 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2017-03-02 21:01:49 -0800 |
commit | a01ca1f17c056179ab9040bf702429fdd97742d6 (patch) | |
tree | 96fa5ac220098ff55c400616d799df3d71c5afd6 /ext/bg/js/ankiconnect.js | |
parent | 5ecca4627e4edd54b8af606c69aa51e4b659deef (diff) |
renaming things to make more sense
Diffstat (limited to 'ext/bg/js/ankiconnect.js')
-rw-r--r-- | ext/bg/js/ankiconnect.js | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/ext/bg/js/ankiconnect.js b/ext/bg/js/ankiconnect.js deleted file mode 100644 index 3a6e3690..00000000 --- a/ext/bg/js/ankiconnect.js +++ /dev/null @@ -1,83 +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 AnkiConnect { - constructor(server) { - this.server = server; - this.asyncPools = {}; - this.localVersion = 2; - this.remoteVersion = null; - } - - addNote(note) { - return this.checkVersion().then(() => this.ankiInvoke('addNote', {note}, null)); - } - - canAddNotes(notes) { - return this.checkVersion().then(() => this.ankiInvoke('canAddNotes', {notes}, 'notes')); - } - - getDeckNames() { - return this.checkVersion().then(() => this.ankiInvoke('deckNames', {}, null)); - } - - getModelNames() { - return this.checkVersion().then(() => this.ankiInvoke('modelNames', {}, null)); - } - - getModelFieldNames(modelName) { - return this.checkVersion().then(() => this.ankiInvoke('modelFieldNames', {modelName}, null)); - } - - checkVersion() { - if (this.localVersion === this.remoteVersion) { - return Promise.resolve(true); - } - - return this.ankiInvoke('version', {}, null).then(version => { - this.remoteVersion = version; - if (this.remoteVersion < this.localVersion) { - return Promise.reject('extension and plugin versions incompatible'); - } - }); - } - - ankiInvoke(action, params, pool) { - return new Promise((resolve, reject) => { - if (pool !== null && this.asyncPools.hasOwnProperty(pool)) { - this.asyncPools[pool].abort(); - } - - const xhr = new XMLHttpRequest(); - xhr.addEventListener('loadend', () => { - if (pool !== null) { - delete this.asyncPools[pool]; - } - - if (xhr.responseText) { - resolve(JSON.parse(xhr.responseText)); - } else { - reject('unable to connect to plugin'); - } - }); - - xhr.open('POST', this.server); - xhr.send(JSON.stringify({action, params})); - }); - } -} |