diff options
| -rw-r--r-- | ext/bg/background.html | 1 | ||||
| -rw-r--r-- | ext/bg/js/dictionary.js | 17 | ||||
| -rw-r--r-- | ext/bg/js/translator.js | 18 | ||||
| -rw-r--r-- | ext/bg/js/util.js | 33 | ||||
| -rw-r--r-- | ext/bg/js/yomichan.js | 2 | 
5 files changed, 41 insertions, 30 deletions
| 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 @@      <script src="../lib/handlebars.min.js"></script>      <script src="../lib/dexie.min.js"></script>      <script src="js/templates.js"></script> +    <script src="js/util.js"></script>      <script src="js/dictionary.js"></script>      <script src="js/deinflector.js"></script>      <script src="js/translator.js"></script> 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 <alex@foosoft.net> + * Author: Alex Yatskov <alex@foosoft.net> + * + * 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 <http://www.gnu.org/licenses/>. + */ + + +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; |