Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()