aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/frame.js
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2017-02-18 19:12:39 -0800
committerAlex Yatskov <alex@foosoft.net>2017-02-18 19:12:39 -0800
commit1a52a2d8d5f5ea5c106ae244ca1e5bbf0da22b6e (patch)
tree3240c34bb69e68f4d7b2a8b8d5362484ac71f6db /ext/fg/js/frame.js
parent701c91ea66852631ccc6e7bfb23b49578646ff33 (diff)
fix not being able to play audio for kana only terms
Diffstat (limited to 'ext/fg/js/frame.js')
-rw-r--r--ext/fg/js/frame.js27
1 files changed, 22 insertions, 5 deletions
diff --git a/ext/fg/js/frame.js b/ext/fg/js/frame.js
index ca0636f9..4f4a6378 100644
--- a/ext/fg/js/frame.js
+++ b/ext/fg/js/frame.js
@@ -164,11 +164,6 @@ class Frame {
}
playAudio(definition) {
- let url = `https://assets.languagepod101.com/dictionary/japanese/audiomp3.php?kanji=${encodeURIComponent(definition.expression)}`;
- if (definition.reading) {
- url += `&kana=${encodeURIComponent(definition.reading)}`;
- }
-
for (const key in this.audioCache) {
const audio = this.audioCache[key];
if (audio !== null) {
@@ -176,6 +171,28 @@ class Frame {
}
}
+ let kana = definition.reading;
+ let kanji = definition.expression;
+ if (!kana) {
+ if (!kanji) {
+ return;
+ }
+
+ if (wanakana.isHiragana(kanji)) {
+ kana = kanji;
+ kanji = null;
+ }
+ }
+
+ const params = [];
+ if (kanji) {
+ params.push(`kanji=${encodeURIComponent(kanji)}`);
+ }
+ if (kana) {
+ params.push(`kana=${encodeURIComponent(kana)}`);
+ }
+
+ const url = `https://assets.languagepod101.com/dictionary/japanese/audiomp3.php?${params.join('&')}`;
let audio = this.audioCache[url];
if (audio) {
audio.currentTime = 0;