diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-02-18 19:12:39 -0800 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-02-18 19:12:39 -0800 | 
| commit | 1a52a2d8d5f5ea5c106ae244ca1e5bbf0da22b6e (patch) | |
| tree | 3240c34bb69e68f4d7b2a8b8d5362484ac71f6db /ext/fg/js | |
| parent | 701c91ea66852631ccc6e7bfb23b49578646ff33 (diff) | |
fix not being able to play audio for kana only terms
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/frame.js | 27 | 
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; |