From 8a9174fd4d34efd9567f7532f01c4d8edf33d21b Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 21 Apr 2011 11:55:35 +0900 Subject: [PATCH] we don't need rep in the revlog --- anki/sched.py | 8 ++++---- anki/storage.py | 18 ++++++++---------- tests/test_sched.py | 5 ++--- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/anki/sched.py b/anki/sched.py index 0244fcea6..0b9d19838 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -369,8 +369,8 @@ limit %d""" % (self._groupLimit(), self.reportLimit), lim=self.dayCutoff) ivl = card.ivl if leaving else -(self._delayForGrade(conf, card.grade)) def log(): self.deck.db.execute( - "insert into revlog values (?,?,?,?,?,?,?,?,?)", - int(time.time()*1000), card.id, ease, card.cycles, + "insert into revlog values (?,?,?,?,?,?,?,?)", + int(time.time()*1000), card.id, ease, ivl, lastIvl, card.factor, taken, type) try: @@ -469,8 +469,8 @@ queue = 2 %s and due <= :lim order by %s limit %d""" % ( taken = min(card.timeTaken(), self._cardConf(card)['maxTaken']*1000) def log(): self.deck.db.execute( - "insert into revlog values (?,?,?,?,?,?,?,?,?)", - int(time.time()*1000), card.id, ease, card.reps, + "insert into revlog values (?,?,?,?,?,?,?,?)", + int(time.time()*1000), card.id, ease, card.ivl, card.lastIvl, card.factor, taken, 1) try: diff --git a/anki/storage.py b/anki/storage.py index f0c92b430..644a076f0 100644 --- a/anki/storage.py +++ b/anki/storage.py @@ -138,7 +138,6 @@ create table if not exists revlog ( time integer primary key, cid integer not null, ease integer not null, - rep integer not null, ivl integer not null, lastIvl integer not null, factor integer not null, @@ -326,7 +325,7 @@ name, "{}", "{}", ?, "" from models2""", simplejson.dumps( r = [] for row in db.execute(""" select -cast(time*1000 as int), cardId, ease, reps, +cast(time*1000 as int), cardId, ease, cast(nextInterval as int), cast(lastInterval as int), cast(nextFactor*1000 as int), cast(min(thinkingTime, 60)*1000 as int), yesCount from reviewHistory"""): @@ -340,10 +339,9 @@ yesCount from reviewHistory"""): # no ease 0 anymore row[2] = row[2] or 1 # determine type, overwriting yesCount - reps = row[3] - newInt = row[4] - oldInt = row[5] - yesCnt = row[8] + newInt = row[3] + oldInt = row[4] + yesCnt = row[7] # yesCnt included the current answer if row[2] > 1: yesCnt -= 1 @@ -351,16 +349,16 @@ yesCount from reviewHistory"""): # new or failed if yesCnt: # type=relrn - row[8] = 2 + row[7] = 2 else: # type=lrn - row[8] = 0 + row[7] = 0 else: # type=rev - row[8] = 1 + row[7] = 1 r.append(row) db.executemany( - "insert or ignore into revlog values (?,?,?,?,?,?,?,?,?)", r) + "insert or ignore into revlog values (?,?,?,?,?,?,?,?)", r) db.execute("drop table reviewHistory") # longer migrations diff --git a/tests/test_sched.py b/tests/test_sched.py index 833193060..0d159b704 100644 --- a/tests/test_sched.py +++ b/tests/test_sched.py @@ -103,9 +103,8 @@ def test_learn(): # check log is accurate log = d.db.first("select * from revlog order by time desc") assert log[2] == 2 - assert log[3] == 2 - assert log[4] == -180 - assert log[5] == -30 + assert log[3] == -180 + assert log[4] == -30 # pass again d.sched.answerCard(c, 2) # it should by due in 10 minutes