From 1a52a2d8d5f5ea5c106ae244ca1e5bbf0da22b6e Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sat, 18 Feb 2017 19:12:39 -0800 Subject: fix not being able to play audio for kana only terms --- ext/fg/frame.html | 1 + ext/fg/js/frame.js | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) (limited to 'ext/fg') diff --git a/ext/fg/frame.html b/ext/fg/frame.html index b7e2b41a..bf7f0f7b 100644 --- a/ext/fg/frame.html +++ b/ext/fg/frame.html @@ -17,6 +17,7 @@ + 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; -- cgit v1.2.3