Пример #1
0
def initializeViews(puppy_reinforcer: PuppyReinforcer):
    try:
        from aqt.gui_hooks import reviewer_did_answer_card, add_cards_did_add_note

        reviewer_did_answer_card.append(puppy_reinforcer.showDog)
        if config["local"]["count_adding"]:
            add_cards_did_add_note.append(puppy_reinforcer.showDog)

    except (ImportError, ModuleNotFoundError):  # Anki < 2.1.20
        # TODO: Drop monkey-patches in the future
        def _myAnswerCard(self, ease: int, _old: Any):
            if self.mw.state != "review":
                # showing resetRequired screen; ignore key
                return
            if self.state != "answer":
                return
            if self.mw.col.sched.answerButtons(self.card) < ease:
                return
            _old(self, ease)
            puppy_reinforcer.showDog()

        def myAddNote(self, note, _old):
            ret = _old(self, note)
            if ret:
                puppy_reinforcer.showDog()
            return ret

        Reviewer._answerCard = wrap(Reviewer._answerCard, _myAnswerCard,
                                    "around")
        if config["local"]["count_adding"]:
            AddCards.addNote = wrap(AddCards.addNote, myAddNote, "around")
Пример #2
0
def init_reviewer():
    card_will_show.append(obscure_editcurrent)

    webview_will_set_content.append(setup_reviewer)
    reviewer_did_show_question.append(stop_fading_on_question)
    reviewer_did_answer_card.append(start_fading_again)
    reviewer_will_end.append(close_editcurrent)
Пример #3
0
def initializeReviewer():
    try:
        from aqt.gui_hooks import reviewer_did_answer_card

        reviewer_did_answer_card.append(onAnswerCard)
    except (ImportError, ModuleNotFoundError):  # Anki < 2.1.20
        Reviewer._answerCard = wrap(Reviewer._answerCard, onAnswerCardWrapper,
                                    "around")
def reset_ease_on_answer(reviewer, card, ease):
    """
    Action. Reset the ease factor to the default when a card has been answered.

    Not sure if this hook runs after Anki has changed the card's factor while
    rescheduling.

    :param reviewer: (aqt.reviewer.Reviewer) Reviewer object.
    :param card: (card) Card object.
    :param ease: (int) Ease 1 to 4, representing the buttons again to easy.
    """
    card.factor = DEFAULT_EASE_FACTOR


reviewer_did_answer_card.append(reset_ease_on_answer)


def v2_reset_ease_on_answer(card, ease, early):
    """
    Action. Reset the ease factor to the default when a card has been answered
    and the new scheduler is used.

    :param card: (Card) Card object.
    :param ease: (int) Ease 1 to 4, representing the buttons again to easy.
    :param early: (bool) If the card is reviewed early (using a filtered deck).
    """
    card.factor = DEFAULT_EASE_FACTOR


schedv2_did_answer_review_card.append(v2_reset_ease_on_answer)