summaryrefslogtreecommitdiff
path: root/ext/jp/yomichan.js
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2016-03-26 14:21:51 -0700
committerAlex Yatskov <alex@foosoft.net>2016-03-26 14:21:51 -0700
commitced7bf5f27c72b98fae3b2d24f1820e0083c22bf (patch)
tree3b6e88f5ed32b1cebfd20035c44fde6d947bf9bf /ext/jp/yomichan.js
parent12696d3e6b3d7f1b92923ed625fdb3dc5ec660f2 (diff)
File reorg
Diffstat (limited to 'ext/jp/yomichan.js')
-rw-r--r--ext/jp/yomichan.js73
1 files changed, 0 insertions, 73 deletions
diff --git a/ext/jp/yomichan.js b/ext/jp/yomichan.js
deleted file mode 100644
index 5c2b579f..00000000
--- a/ext/jp/yomichan.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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/>.
- */
-
-
-class Yomichan {
- constructor() {
- this.translator = new Translator();
- this.res = {
- rules: 'jp/data/rules.json',
- edict: 'jp/data/edict.json',
- enamdict: 'jp/data/enamdict.json',
- kanjidic: 'jp/data/kanjidic.json'
- };
-
- this.updateState('disabled');
-
- chrome.runtime.onMessage.addListener(this.onMessage.bind(this));
- chrome.browserAction.onClicked.addListener(this.onBrowserAction.bind(this));
- }
-
- onFindTerm({term}) {
- return this.translator.findTerm(term);
- }
-
- onMessage(request, sender, callback) {
- const {action, data} = request;
- const handler = {
- findTerm: this.onFindTerm
- }[action];
-
- if (handler !== null) {
- const result = handler.call(this, data);
- if (callback !== null) {
- callback(result);
- }
- }
- }
-
- onBrowserAction(tab) {
- switch (this.state) {
- case 'disabled':
- this.updateState('loading');
- this.translator.loadData(this.res, () => this.updateState('enabled'));
- break;
- case 'enabled':
- this.updateState('disabled');
- break;
- }
- }
-
- updateState(state) {
- const text = {'disabled': '', 'enabled': 'on', 'loading': '...'}[state];
- chrome.browserAction.setBadgeText({text: text});
- this.state = state;
- }
-}
-
-window.yomichan = new Yomichan();