diff options
Diffstat (limited to 'ext/bg/js')
-rw-r--r-- | ext/bg/js/dictionary.js | 33 | ||||
-rw-r--r-- | ext/bg/js/translator.js | 15 |
2 files changed, 9 insertions, 39 deletions
diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js index a68c2daf..feb8c92b 100644 --- a/ext/bg/js/dictionary.js +++ b/ext/bg/js/dictionary.js @@ -19,31 +19,20 @@ class Dictionary { constructor() { - this.terms = []; - this.termIndices = {}; - - this.kanji = []; - this.kanjiIndices = {}; + this.termDicts = {}; + this.kanjiDicts = {}; } - addTermData(terms) { - let index = this.terms.length; - for (const [e, r, g, t] of terms) { - this.storeIndex(this.termIndices, e, index); - this.storeIndex(this.termIndices, r, index++); - this.terms.push([e, r, g, t]); - } + addTermDict(name, dict) { + this.termDicts[name] = dict; } - addKanjiData(kanji) { - let index = this.kanji.length; - for (const [c, k, o, g] of kanji) { - this.storeIndex(this.kanjiIndices, c, index++); - this.kanji.push([c, k, o, g]); - } + addKanjiDict(name, dict) { + this.kanjiDicts[name] = dict; } findTerm(term) { + const results = []; return (this.termIndices[term] || []).map(index => { const [e, r, g, t] = this.terms[index]; return {id: index, expression: e, reading: r, glossary: g, tags: t.split(' ')}; @@ -56,12 +45,4 @@ class Dictionary { return {id: index, character: c, kunyomi: k, onyomi: o, glossary: g}; }); } - - storeIndex(indices, term, index) { - if (term.length > 0) { - const indices = this.termIndices[term] || []; - indices.push(index); - this.termIndices[term] = indices; - } - } } diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js index e8224320..5414a553 100644 --- a/ext/bg/js/translator.js +++ b/ext/bg/js/translator.js @@ -46,11 +46,11 @@ class Translator { this.deinflector.setRules(JSON.parse(response)); break; case 'kanjidic': - this.dictionary.addKanjiData(Translator.parseCsv(response)); + this.dictionary.addKanjiDict('kanjidic', JSON.parse(response)); break; case 'edict': case 'enamdict': - this.dictionary.addTermData(Translator.parseCsv(response)); + this.dictionary.addTermDict(key, JSON.parse(response)); break; } @@ -164,15 +164,4 @@ class Translator { xhr.open('GET', chrome.extension.getURL(url), true); xhr.send(); } - - static parseCsv(data) { - const result = []; - for (const row of data.split('\n')) { - if (row.length > 0) { - result.push(row.split('\t')); - } - } - - return result; - } } |