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")
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)
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)