From 6e4bbfa0d601119753583d6b643479e9fcbbe1e8 Mon Sep 17 00:00:00 2001 From: Austin Siew <17107540+Aquafina-water-bottle@users.noreply.github.com> Date: Mon, 5 Sep 2022 00:29:03 -0600 Subject: [PATCH] Added getReviewsOfCard --- README.md | 29 +++++++++++++++++++++++++++++ plugin/__init__.py | 7 +++++++ tests/test_stats.py | 2 ++ 3 files changed, 38 insertions(+) diff --git a/README.md b/README.md index 2cd6651..5caa86d 100644 --- a/README.md +++ b/README.md @@ -2759,6 +2759,35 @@ corresponding to when the API was available for use. } ``` +* **getReviewsOfCard** + + Requests all card reviews for a specific card ID. + Returns a list of 9-tuples in the same format as `cardReviews`: `(reviewTime, cardID, usn, buttonPressed, newInterval, previousInterval, newFactor, reviewDuration, reviewType)` + + *Sample request*: + ```json + { + "action": "getReviewsOfCard", + "version": 6, + "params": { + "card": "1653613948202" + } + } + ``` + + *Sample result*: + ```json + { + "result": [ + [1654102387663, 1653613948202, 1780, 3, 8, 3, 2500, 25796, 1], + [1654798974478, 1653613948202, 1861, 3, 20, 8, 2500, 18134, 1], + [1656556319328, 1653613948202, 2075, 3, 53, 20, 2500, 20530, 1], + [1661107990069, 1653613948202, 2478, 3, 131, 53, 2500, 24247, 1] + ], + "error": null + } + ``` + * **getLatestReviewID** Returns the unix time of the latest review for the given deck. 0 if no review has ever been made for the deck. diff --git a/plugin/__init__.py b/plugin/__init__.py index 4ff486b..661935e 100644 --- a/plugin/__init__.py +++ b/plugin/__init__.py @@ -1373,6 +1373,13 @@ class AnkiConnect: ) + @util.api() + def getReviewsOfCard(self, card): + return self.database().all( + 'select id, cid, usn, ease, ivl, lastIvl, factor, time, type from revlog where cid = ?', card + ) + + @util.api() def reloadCollection(self): self.collection().reset() diff --git a/tests/test_stats.py b/tests/test_stats.py index a412ca1..3237161 100755 --- a/tests/test_stats.py +++ b/tests/test_stats.py @@ -29,3 +29,5 @@ class TestReviews: assert len(ac.cardReviews(deck="test_deck", startID=0)) == 2 assert ac.getLatestReviewID(deck="test_deck") == 789 + assert ac.getReviewsOfCard(card=setup.card_ids[0]) == \ + [[456, setup.card_ids[0], -1, 3, 4, -60, 2500, 6157, 0]]