unify files

This commit is contained in:
Alex Yatskov 2017-08-13 21:11:10 -07:00
parent a202817b98
commit 8b50dfe1e9
7 changed files with 91 additions and 128 deletions

View File

@ -9,8 +9,7 @@
<script src="/mixed/lib/jszip.min.js"></script> <script src="/mixed/lib/jszip.min.js"></script>
<script src="/mixed/lib/wanakana.min.js"></script> <script src="/mixed/lib/wanakana.min.js"></script>
<script src="/bg/js/anki-connect.js"></script> <script src="/bg/js/anki.js"></script>
<script src="/bg/js/anki-null.js"></script>
<script src="/bg/js/api.js"></script> <script src="/bg/js/api.js"></script>
<script src="/bg/js/database.js"></script> <script src="/bg/js/database.js"></script>
<script src="/bg/js/deinflector.js"></script> <script src="/bg/js/deinflector.js"></script>
@ -20,7 +19,6 @@
<script src="/bg/js/templates.js"></script> <script src="/bg/js/templates.js"></script>
<script src="/bg/js/translator.js"></script> <script src="/bg/js/translator.js"></script>
<script src="/bg/js/util.js"></script> <script src="/bg/js/util.js"></script>
<script src="/bg/js/util.js"></script>
<script src="/mixed/js/audio.js"></script> <script src="/mixed/js/audio.js"></script>
<script src="/mixed/js/japanese.js"></script> <script src="/mixed/js/japanese.js"></script>
<script src="/mixed/js/request.js"></script> <script src="/mixed/js/request.js"></script>

View File

@ -1,44 +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 AnkiNull {
async addNote(note) {
return null;
}
async canAddNotes(notes) {
return [];
}
async getDeckNames() {
return [];
}
async getModelNames() {
return [];
}
async getModelFieldNames(modelName) {
return [];
}
async guiBrowse(query) {
return [];
}
}

View File

@ -67,3 +67,29 @@ class AnkiConnect {
return requestJson(this.server, 'POST', {action, params, version: this.localVersion}); return requestJson(this.server, 'POST', {action, params, version: this.localVersion});
} }
} }
class AnkiNull {
async addNote(note) {
return null;
}
async canAddNotes(notes) {
return [];
}
async getDeckNames() {
return [];
}
async getModelNames() {
return [];
}
async getModelFieldNames(modelName) {
return [];
}
async guiBrowse(query) {
return [];
}
}

View File

@ -17,7 +17,7 @@
*/ */
window.yomichan_backend = new class { class Backend {
constructor() { constructor() {
this.translator = new Translator(); this.translator = new Translator();
this.anki = new AnkiNull(); this.anki = new AnkiNull();
@ -113,6 +113,7 @@ window.yomichan_backend = new class {
return true; return true;
} }
}; }
window.yomichan_backend = new Backend();
window.yomichan_backend.prepare(); window.yomichan_backend.prepare();

View File

@ -1,77 +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 TextSourceElement {
constructor(element, content='') {
this.element = element;
this.content = content;
}
clone() {
return new TextSourceElement(this.element, this.content);
}
text() {
return this.content;
}
setEndOffset(length) {
switch (this.element.nodeName) {
case 'BUTTON':
this.content = this.element.innerHTML;
break;
case 'IMG':
this.content = this.element.getAttribute('alt');
break;
default:
this.content = this.element.value;
break;
}
this.content = this.content || '';
this.content = this.content.substring(0, length);
return this.content.length;
}
setStartOffset(length) {
return 0;
}
containsPoint(point) {
const rect = this.getRect();
return point.x >= rect.left && point.x <= rect.right;
}
getRect() {
return this.element.getBoundingClientRect();
}
select() {
// NOP
}
deselect() {
// NOP
}
equals(other) {
return other.element === this.element && other.content === this.content;
}
}

View File

@ -174,3 +174,63 @@ class TextSourceRange {
return state.remainder > 0; return state.remainder > 0;
} }
} }
class TextSourceElement {
constructor(element, content='') {
this.element = element;
this.content = content;
}
clone() {
return new TextSourceElement(this.element, this.content);
}
text() {
return this.content;
}
setEndOffset(length) {
switch (this.element.nodeName) {
case 'BUTTON':
this.content = this.element.innerHTML;
break;
case 'IMG':
this.content = this.element.getAttribute('alt');
break;
default:
this.content = this.element.value;
break;
}
this.content = this.content || '';
this.content = this.content.substring(0, length);
return this.content.length;
}
setStartOffset(length) {
return 0;
}
containsPoint(point) {
const rect = this.getRect();
return point.x >= rect.left && point.x <= rect.right;
}
getRect() {
return this.element.getBoundingClientRect();
}
select() {
// NOP
}
deselect() {
// NOP
}
equals(other) {
return other.element === this.element && other.content === this.content;
}
}

View File

@ -18,8 +18,7 @@
"fg/js/api.js", "fg/js/api.js",
"fg/js/document.js", "fg/js/document.js",
"fg/js/popup.js", "fg/js/popup.js",
"fg/js/source-element.js", "fg/js/source.js",
"fg/js/source-range.js",
"fg/js/util.js", "fg/js/util.js",
"fg/js/frontend.js" "fg/js/frontend.js"