Import stubs

This commit is contained in:
Alex Yatskov 2016-08-21 13:32:36 -07:00
parent 96c6c4ad1a
commit 67f906ab24
2 changed files with 38 additions and 29 deletions

View File

@ -21,20 +21,32 @@ class Dictionary {
constructor() { constructor() {
this.termDicts = {}; this.termDicts = {};
this.kanjiDicts = {}; this.kanjiDicts = {};
this.db = new Dexie('dict');
this.dbVer = 1;
} }
addTermDict(name, dict) { loadDb() {
return this.db.open().then((db) => {
if (db.verno !== this.dbVer) {
Promise.reject('db version mismatch');
}
return db.verno;
});
}
importTermDict(name, dict) {
this.termDicts[name] = dict; this.termDicts[name] = dict;
} }
addKanjiDict(name, dict) { importKanjiDict(name, dict) {
this.kanjiDicts[name] = dict; this.kanjiDicts[name] = dict;
} }
findTerm(term) { findTerm(term) {
let results = []; let results = [];
for (let name in this.termDicts) { for (const name in this.termDicts) {
const dict = this.termDicts[name]; const dict = this.termDicts[name];
if (!(term in dict.i)) { if (!(term in dict.i)) {
continue; continue;
@ -62,7 +74,7 @@ class Dictionary {
findKanji(kanji) { findKanji(kanji) {
const results = []; const results = [];
for (let name in this.kanjiDicts) { for (const name in this.kanjiDicts) {
const def = this.kanjiDicts[name].c[kanji]; const def = this.kanjiDicts[name].c[kanji];
if (def) { if (def) {
const [k, o, t, ...g] = def; const [k, o, t, ...g] = def;

View File

@ -31,31 +31,28 @@ class Translator {
return; return;
} }
Translator.loadData('bg/data/rules.json') Translator.loadData('bg/data/rules.json').then((response) => {
.then((response) => { this.deinflector.setRules(JSON.parse(response));
this.deinflector.setRules(JSON.parse(response)); return Translator.loadData('bg/data/tags.json');
return Translator.loadData('bg/data/tags.json'); }).then((response) => {
}) this.tagMeta = JSON.parse(response);
.then((response) => { return this.dictionary.loadDb();
this.tagMeta = JSON.parse(response); }).then(() => {
return Translator.loadData('bg/data/edict.json'); this.loaded = true;
}) callback();
.then((response) => { }).catch(() => {
this.dictionary.addTermDict('edict', JSON.parse(response)); return Translator.loadData('bg/data/edict.json');
return Translator.loadData('bg/data/kanjidic.json'); }).then((response) => {
}) this.dictionary.importTermDict('edict', JSON.parse(response));
.then((response) => { return Translator.loadData('bg/data/enamdict.json');
this.dictionary.addKanjiDict('kanjidic', JSON.parse(response)); }).then((response) => {
return loadEnamDict ? Translator.loadData('bg/data/enamdict.json') : Promise.resolve(null); this.dictionary.importTermDict('enamdict', JSON.parse(response));
}) return Translator.loadData('bg/data/kanjidic.json');
.then((response) => { }).then((response) => {
if (response !== null) { this.dictionary.importKanjiDict('kanjidic', JSON.parse(response));
this.dictionary.addTermDict('enamdict', JSON.parse(response)); this.loaded = true;
} callback();
});
this.loaded = true;
callback();
});
} }
findTerm(text) { findTerm(text) {