def webview_message_handler(reviewer: Reviewer, message: str): card = reviewer.card if not card: return _, action = message.split(":", 1) deck_config = get_config_dict_for_deck_id(reviewer.mw.col.decks, card.odid or card.did) if action == "typeans": if local_conf["stopWhenTypingAnswer"]: suspend_timers(reviewer) elif action == "alert": av_player.clear_queue_and_maybe_interrupt() av_player.play_file(ALERT_PATH) timeout = deck_config.get("autoAlert", 0) tooltip( "Wake up! You have been looking at <br>" "the question for <b>{}</b> seconds!".format(timeout), period=1000, ) elif action == "action": action = deck_config.get("autoAction", "again") if action == "again": if reviewer.state == "question": reviewer._showAnswer() reviewer._answerCard(1) elif action == "good": if reviewer.state == "question": reviewer._showAnswer() reviewer._answerCard(reviewer._defaultEase()) elif action == "bury": reviewer.onBuryCard()
def reload_reviewer(reviewer: Reviewer) -> None: cid = reviewer.card.id if ankiver_minor >= 45: timer_started = reviewer.card.timer_started else: timerStarted = reviewer.card.timerStarted # type: ignore reviewer.card = mw.col.getCard(cid) if ankiver_minor >= 45: reviewer.card.timer_started = timer_started else: reviewer.card.timerStarted = timerStarted # type: ignore if reviewer.state == "question": reviewer._showQuestion() elif reviewer.state == "answer": reviewer._showAnswer()