From 3cc755893695036a67dc65a716747ad047ba58ba Mon Sep 17 00:00:00 2001 From: David Snopek Date: Wed, 31 Jul 2013 20:24:59 +0100 Subject: [PATCH] Added a way to get the latest cards. --- AnkiServer/apps/rest_app.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/AnkiServer/apps/rest_app.py b/AnkiServer/apps/rest_app.py index 84c05f6..ad48933 100644 --- a/AnkiServer/apps/rest_app.py +++ b/AnkiServer/apps/rest_app.py @@ -422,6 +422,24 @@ class CollectionHandler(RestHandlerBase): return cards + def latest_cards(self, col, req): + # TODO: use SQLAlchemy objects to do this + sql = "SELECT c.id FROM notes AS n INNER JOIN cards AS c ON c.nid = n.id"; + args = [] + if req.data.has_key('updated_since'): + sql += ' WHERE n.mod > ?' + args.append(req.data['updated_since']) + sql += ' ORDER BY n.mod DESC' + sql += ' LIMIT ' + str(req.data.get('limit', 10)) + ids = col.db.list(sql, *args) + + if req.data.get('preload', False): + cards = [CardHandler._serialize(col.getCard(id)) for id in ids] + else: + cards = [{'id': id} for id in ids] + + return cards + # # SCHEDULER - Controls card review, ie. intervals, what cards are due, answering a card, etc. #