From b2d9b613ad3a673abb20033808877962545644d4 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Tue, 23 Aug 2016 22:28:37 -0700 Subject: [PATCH] Cleanup --- ext/bg/background.html | 1 + ext/bg/js/dictionary.js | 17 ++++------------- ext/bg/js/translator.js | 18 ++---------------- ext/bg/js/util.js | 33 +++++++++++++++++++++++++++++++++ ext/bg/js/yomichan.js | 2 +- 5 files changed, 41 insertions(+), 30 deletions(-) create mode 100644 ext/bg/js/util.js diff --git a/ext/bg/background.html b/ext/bg/background.html index e68c665b..c490df81 100644 --- a/ext/bg/background.html +++ b/ext/bg/background.html @@ -4,6 +4,7 @@ + diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js index 8f04c458..3fceef65 100644 --- a/ext/bg/js/dictionary.js +++ b/ext/bg/js/dictionary.js @@ -92,7 +92,7 @@ class Dictionary { importTermDict(indexUrl) { const indexDir = indexUrl.slice(0, indexUrl.lastIndexOf('/')); - return Dictionary.loadJson(indexUrl).then((index) => { + return loadJson(indexUrl).then((index) => { const entities = []; for (const [name, value] of index.ents) { entities.push({name, value}); @@ -111,7 +111,7 @@ class Dictionary { for (let i = 0; i <= index.refs; ++i) { const refUrl = `${indexDir}/ref_${i}.json`; loaders.push(() => { - return Dictionary.loadJson(refUrl).then((refs) => { + return loadJson(refUrl).then((refs) => { const rows = []; for (const [expression, reading, tags, ...glossary] of refs) { rows.push({expression, reading, tags, glossary}); @@ -135,12 +135,12 @@ class Dictionary { importKanjiDict(indexUrl) { const indexDir = indexUrl.slice(0, indexUrl.lastIndexOf('/')); - return Dictionary.loadJson(indexUrl).then((index) => { + return loadJson(indexUrl).then((index) => { const loaders = []; for (let i = 0; i <= index.refs; ++i) { const refUrl = `${indexDir}/ref_${i}.json`; loaders.push(() => { - return Dictionary.loadJson(refUrl).then((refs) => { + return loadJson(refUrl).then((refs) => { const rows = []; for (const [character, onyomi, kunyomi, tags, ...glossary] of refs) { rows.push({character, onyomi, kunyomi, tags, glossary}); @@ -159,13 +159,4 @@ class Dictionary { return chain; }); } - - static loadJson(url) { - return new Promise((resolve, reject) => { - const xhr = new XMLHttpRequest(); - xhr.addEventListener('load', () => resolve(JSON.parse(xhr.responseText))); - xhr.open('GET', chrome.extension.getURL(url), true); - xhr.send(); - }); - } } diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js index 8af0e31b..30045378 100644 --- a/ext/bg/js/translator.js +++ b/ext/bg/js/translator.js @@ -31,9 +31,9 @@ class Translator { return; } - Translator.loadJson('bg/data/rules.json').then((rules) => { + loadJson('bg/data/rules.json').then((rules) => { this.deinflector.setRules(rules); - return Translator.loadJson('bg/data/tags.json'); + return loadJson('bg/data/tags.json'); }).then((tagMeta) => { this.tagMeta = tagMeta; return this.dictionary.existsDb(); @@ -240,18 +240,4 @@ class Translator { return 0; }); } - - static isKanji(c) { - const code = c.charCodeAt(0); - return code >= 0x4e00 && code < 0x9fb0 || code >= 0x3400 && code < 0x4dc0; - } - - static loadJson(url) { - return new Promise((resolve, reject) => { - const xhr = new XMLHttpRequest(); - xhr.addEventListener('load', () => resolve(JSON.parse(xhr.responseText))); - xhr.open('GET', chrome.extension.getURL(url), true); - xhr.send(); - }); - } } diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js new file mode 100644 index 00000000..97906eda --- /dev/null +++ b/ext/bg/js/util.js @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2016 Alex Yatskov + * Author: Alex Yatskov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +function loadJson(url) { + return new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest(); + xhr.addEventListener('load', () => resolve(JSON.parse(xhr.responseText))); + xhr.open('GET', chrome.extension.getURL(url), true); + xhr.send(); + }); +} + +function isKanji(c) { + const code = c.charCodeAt(0); + return code >= 0x4e00 && code < 0x9fb0 || code >= 0x3400 && code < 0x4dc0; +} + diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index fd9b84d3..716c622a 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -23,7 +23,7 @@ class Yomichan { Handlebars.registerHelper('kanjiLinks', function(options) { let result = ''; for (const c of options.fn(this)) { - if (Translator.isKanji(c)) { + if (isKanji(c)) { result += Handlebars.templates['kanji-link.html']({kanji: c}).trim(); } else { result += c;