Added getReviewsOfCard

This commit is contained in:
Austin Siew 2022-09-05 00:29:03 -06:00
parent fbd6ccad3e
commit 6e4bbfa0d6
3 changed files with 38 additions and 0 deletions

View File

@ -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** * **getLatestReviewID**
Returns the unix time of the latest review for the given deck. 0 if no review has ever been made for the deck. Returns the unix time of the latest review for the given deck. 0 if no review has ever been made for the deck.

View File

@ -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() @util.api()
def reloadCollection(self): def reloadCollection(self):
self.collection().reset() self.collection().reset()

View File

@ -29,3 +29,5 @@ class TestReviews:
assert len(ac.cardReviews(deck="test_deck", startID=0)) == 2 assert len(ac.cardReviews(deck="test_deck", startID=0)) == 2
assert ac.getLatestReviewID(deck="test_deck") == 789 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]]