From 3892481cea8ed10a0782c2925923499e97ce5b04 Mon Sep 17 00:00:00 2001 From: ant <3298461+antistic@users.noreply.github.com> Date: Thu, 15 Jun 2023 12:49:02 +0100 Subject: [PATCH] change param format for answerCards --- README.md | 14 +++++++++++--- plugin/__init__.py | 8 +++++--- tests/test_cards.py | 7 +++++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f36e317..27d402d 100644 --- a/README.md +++ b/README.md @@ -726,7 +726,7 @@ corresponding to when the API was available for use. #### `answerCards` -* Answer cards. Answers are between 1 (Again) and 4 (Easy). Will start the timer immediately before answering. Returns `true` if card exists, `false` otherwise. +* Answer cards. Ease is between 1 (Again) and 4 (Easy). Will start the timer immediately before answering. Returns `true` if card exists, `false` otherwise.
Sample request: @@ -736,8 +736,16 @@ corresponding to when the API was available for use. "action": "answerCards", "version": 6, "params": { - "cards": [1498938915662, 1502098034048], - "answers": [2, 4], + "answers": [ + { + "cardId": 1498938915662, + "ease": 2 + }, + { + "cardId": 1502098034048, + "ease": 4 + } + ] } } ``` diff --git a/plugin/__init__.py b/plugin/__init__.py index c09cd11..5ca8514 100644 --- a/plugin/__init__.py +++ b/plugin/__init__.py @@ -1531,14 +1531,16 @@ class AnkiConnect: @util.api() - def answerCards(self, cards, answers): + def answerCards(self, answers): scheduler = self.scheduler() success = [] - for i, cid in enumerate(cards): + for answer in answers: try: + cid = answer['cardId'] + ease = answer['ease'] card = self.getCard(cid) card.start_timer() - scheduler.answerCard(card, answers[i]) + scheduler.answerCard(card, ease) success.append(True) except NotFoundError: success.append(False) diff --git a/tests/test_cards.py b/tests/test_cards.py index dd69b44..0ce93b2 100755 --- a/tests/test_cards.py +++ b/tests/test_cards.py @@ -81,10 +81,13 @@ def test_relearnCards(setup): class TestAnswerCards: def test_answerCards(self, setup): ac.scheduler().reset() - result = ac.answerCards(cards=setup.card_ids, answers=[2, 1, 4, 3]) + answers = [ + {"cardId": a, "ease": b} for a, b in zip(setup.card_ids, [2, 1, 4, 3]) + ] + result = ac.answerCards(answers) assert result == [True] * 4 def test_answerCards_with_invalid_card_id(self, setup): ac.scheduler().reset() - result = ac.answerCards(cards=[123], answers=[2]) + result = ac.answerCards([{"cardId": 123, "ease": 2}]) assert result == [False]