From 61f36b565936aae11c4f9948f4d6c1eb57cf2044 Mon Sep 17 00:00:00 2001 From: Bent Date: Sat, 11 Dec 2021 18:36:23 +0100 Subject: [PATCH] Click to play audio in previewer --- src/click_play_audio.py | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/click_play_audio.py b/src/click_play_audio.py index 9398286..ed011b9 100644 --- a/src/click_play_audio.py +++ b/src/click_play_audio.py @@ -2,38 +2,40 @@ import aqt from aqt.reviewer import Reviewer +from aqt.browser.previewer import Previewer from .note_type_mgr import nt_get_lang -def reviewer_play_audio(reviewer: Reviewer, word: str): +def ctx_get_lang(ctx): - card = reviewer.card + note = None - if not card: - return + if isinstance(ctx, Reviewer): + card = ctx.card + elif isinstance(ctx, Previewer): + card = ctx.card() + + if not card: + return None + note = card.note() - if not note: - return + return None - lang = nt_get_lang(card.note_type()) - if lang is None: - return - - aqt.mw.migaku_connection.play_audio(lang.code, word) + return nt_get_lang(card.note_type()) def handle_js_message(handled: Tuple[bool, Any], message: str, ctx: Any) -> Tuple[bool, Any]: - if not isinstance(ctx, Reviewer): - return handled - - reviewer: Reviewer = ctx - if message.startswith('play_audio'): - reviewer_play_audio(reviewer, message[11:]) + lang = ctx_get_lang(ctx) + + if lang: + word = message[11:] + aqt.mw.migaku_connection.play_audio(lang.code, word) + return (True, None) return handled