diff options
| -rw-r--r-- | ext/bg/js/dictionary.js | 57 | 
1 files changed, 28 insertions, 29 deletions
| diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js index f5c5b21b..7b112381 100644 --- a/ext/bg/js/dictionary.js +++ b/ext/bg/js/dictionary.js @@ -388,40 +388,39 @@ dictFieldFormat.markers = new Set([  ]);  async function dictNoteFormat(definition, mode, options, templates) { -    const note = {fields: {}, tags: options.anki.tags}; -    let fields = []; - -    if (mode === 'kanji') { -        fields = options.anki.kanji.fields; -        note.deckName = options.anki.kanji.deck; -        note.modelName = options.anki.kanji.model; -    } else { -        fields = options.anki.terms.fields; -        note.deckName = options.anki.terms.deck; -        note.modelName = options.anki.terms.model; - -        if (definition.audio) { -            const audio = { -                url: definition.audio.url, -                filename: definition.audio.filename, -                skipHash: '7e2c2f954ef6051373ba916f000168dc', -                fields: [] -            }; +    const isKanji = (mode === 'kanji'); +    const tags = options.anki.tags; +    const modeOptions = isKanji ? options.anki.kanji : options.anki.terms; +    const modeOptionsFieldEntries = Object.entries(modeOptions.fields); + +    const note = { +        fields: {}, +        tags, +        deckName: modeOptions.deck, +        modelName: modeOptions.model +    }; -            for (const name in fields) { -                if (fields[name].includes('{audio}')) { -                    audio.fields.push(name); -                } -            } +    for (const [fieldName, fieldValue] of modeOptionsFieldEntries) { +        note.fields[fieldName] = await dictFieldFormat(fieldValue, definition, mode, options, templates); +    } -            if (audio.fields.length > 0) { -                note.audio = audio; +    if (!isKanji && definition.audio) { +        const audioFields = []; + +        for (const [fieldName, fieldValue] of modeOptionsFieldEntries) { +            if (fieldValue.includes('{audio}')) { +                audioFields.push(fieldName);              }          } -    } -    for (const name in fields) { -        note.fields[name] = await dictFieldFormat(fields[name], definition, mode, options, templates); +        if (audioFields.length > 0) { +            note.audio = { +                url: definition.audio.url, +                filename: definition.audio.filename, +                skipHash: '7e2c2f954ef6051373ba916f000168dc', +                fields: audioFields +            }; +        }      }      return note; |