From 2aa86cc5f8cda022076f7fa047f17fdcca4a0f5e Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Wed, 9 Sep 2020 11:54:40 -0400 Subject: Anki API refactor (#790) * Add function guiBrowseNote * Assign default server as null * Use get/set properties for server/enabled * Refactor option values * Refactor createNote/Data functions to not use options format directly * Use createNote for testing * Add errors --- ext/bg/js/backend.js | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'ext/bg/js/backend.js') diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index e9f3fbec..832dbc3a 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -471,7 +471,7 @@ class Backend { ); } - const note = await this._ankiNoteBuilder.createNote(definition, mode, context, options, templates); + const note = await this._createNote(definition, mode, context, options, templates); return this._anki.addNote(note); } @@ -484,7 +484,7 @@ class Backend { const notePromises = []; for (const definition of definitions) { for (const mode of modes) { - const notePromise = this._ankiNoteBuilder.createNote(definition, mode, context, options, templates); + const notePromise = this._createNote(definition, mode, context, options, templates); notePromises.push(notePromise); } } @@ -524,7 +524,7 @@ class Backend { } async _onApiNoteView({noteId}) { - return await this._anki.guiBrowse(`nid:${noteId}`); + return await this._anki.guiBrowseNote(noteId); } async _onApiTemplateRender({template, data, marker}) { @@ -1023,8 +1023,8 @@ class Backend { const options = this.getOptions({current: true}); this._updateBadge(); - this._anki.setServer(options.anki.server); - this._anki.setEnabled(options.anki.enable); + this._anki.server = options.anki.server; + this._anki.enabled = options.anki.enable; if (options.parsing.enableMecabParser) { this._mecab.startListener(); @@ -1609,4 +1609,21 @@ class Backend { reader.readAsDataURL(file); }); } + + async _createNote(definition, mode, context, options, templates) { + const {general: {resultOutputMode, compactGlossaries}, anki: ankiOptions} = options; + const {tags, duplicateScope} = ankiOptions; + const modeOptions = (mode === 'kanji') ? ankiOptions.kanji : ankiOptions.terms; + return await this._ankiNoteBuilder.createNote({ + definition, + mode, + context, + templates, + tags, + duplicateScope, + resultOutputMode, + compactGlossaries, + modeOptions + }); + } } -- cgit v1.2.3