This commit is contained in:
jdoe0 2013-08-02 01:35:27 +07:00
commit c8501cf8aa

View File

@ -228,6 +228,10 @@ class RestApp(object):
logging.error(req.path+': Unable to parse JSON: '+str(e), exc_info=True) logging.error(req.path+': Unable to parse JSON: '+str(e), exc_info=True)
raise HTTPBadRequest() raise HTTPBadRequest()
# fix for a JSON encoding 'quirk' in PHP
if type(data) == list and len(data) == 0:
data = {}
# make the keys into non-unicode strings # make the keys into non-unicode strings
data = dict([(str(k), v) for k, v in data.items()]) data = dict([(str(k), v) for k, v in data.items()])
@ -545,6 +549,32 @@ class CollectionHandler(RestHandlerBase):
return result return result
def latest_revlog(self, col, req):
"""Returns recent entries from the revlog."""
# TODO: Use sqlalchemy to build this query!
sql = "SELECT r.id, r.ease, r.cid, r.usn, r.ivl, r.lastIvl, r.factor, r.time, r.type FROM revlog AS r"
args = []
if req.data.has_key('updated_since'):
sql += ' WHERE r.id > ?'
args.append(long(req.data['updated_since']) * 1000)
sql += ' ORDER BY r.id DESC'
sql += ' LIMIT ' + str(req.data.get('limit', 100))
revlog = col.db.all(sql, *args)
return [{
'id': r[0],
'ease': r[1],
'timestamp': int(r[0] / 1000),
'card_id': r[2],
'usn': r[3],
'interval': r[4],
'last_interval': r[5],
'factor': r[6],
'time': r[7],
'type': r[8],
} for r in revlog]
stats_reports = { stats_reports = {
'today': 'todayStats', 'today': 'todayStats',
'due': 'dueGraph', 'due': 'dueGraph',