diff options
-rw-r--r-- | ext/bg/js/anki-note-builder.js | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/ext/bg/js/anki-note-builder.js b/ext/bg/js/anki-note-builder.js index 595d56a8..e396bec6 100644 --- a/ext/bg/js/anki-note-builder.js +++ b/ext/bg/js/anki-note-builder.js @@ -85,17 +85,7 @@ class AnkiNoteBuilder { } async injectAudio(definition, fields, sources, audioSystem, optionsContext) { - let usesAudio = false; - for (const fieldValue of Object.values(fields)) { - if (fieldValue.includes('{audio}')) { - usesAudio = true; - break; - } - } - - if (!usesAudio) { - return true; - } + if (!this._containsMarker(fields, 'audio')) { return; } try { const expressions = definition.expressions; @@ -114,17 +104,7 @@ class AnkiNoteBuilder { } async injectScreenshot(definition, fields, screenshot, anki) { - let usesScreenshot = false; - for (const fieldValue of Object.values(fields)) { - if (fieldValue.includes('{screenshot}')) { - usesScreenshot = true; - break; - } - } - - if (!usesScreenshot) { - return; - } + if (!this._containsMarker(fields, 'screenshot')) { return; } const now = new Date(Date.now()); const filename = `yomichan_browser_screenshot_${definition.reading}_${this._dateToString(now)}.${screenshot.format}`; @@ -160,6 +140,16 @@ class AnkiNoteBuilder { return `${year}-${month}-${day}-${hours}-${minutes}-${seconds}`; } + _containsMarker(fields, marker) { + marker = `{${marker}}`; + for (const fieldValue of Object.values(fields)) { + if (fieldValue.includes(marker)) { + return true; + } + } + return false; + } + static stringReplaceAsync(str, regex, replacer) { let match; let index = 0; |