log the fact that we're leaving the learning queue in factor

This commit is contained in:
Damien Elmes 2011-03-11 07:29:40 +09:00
parent e4cc3e3013
commit 8b46cb4daa

View file

@ -159,24 +159,25 @@ limit %d""" % self.learnLimit, lim=self.dayCutoff)
def answerLearnCard(self, card, ease): def answerLearnCard(self, card, ease):
# ease 1=no, 2=yes, 3=remove # ease 1=no, 2=yes, 3=remove
conf = self.learnConf(card) conf = self.learnConf(card)
leaving = False
if ease == 3: if ease == 3:
self.removeLearnCard(card, conf) self.removeLearnCard(card, conf)
return leaving = True
card.cycles += 1 elif ease == 2 and card.grade+1 >= len(conf['delays']):
if ease == 2:
card.grade += 1
else:
card.grade = 0
if card.grade >= len(conf['delays']):
self.graduateLearnCard(card, conf) self.graduateLearnCard(card, conf)
return leaving = True
else: else:
card.cycles += 1
if ease == 2:
card.grade += 1
else:
card.grade = 0
card.due = time.time() + self.delayForGrade(conf, card.grade) card.due = time.time() + self.delayForGrade(conf, card.grade)
try: try:
self.logLearn(card, ease, conf) self.logLearn(card, ease, conf, leaving)
except: except:
time.sleep(0.01) time.sleep(0.01)
self.logLearn(card, ease, conf) self.logLearn(card, ease, conf, leaving)
def delayForGrade(self, conf, grade): def delayForGrade(self, conf, grade):
return conf['delays'][grade]*60 return conf['delays'][grade]*60
@ -213,18 +214,17 @@ limit %d""" % self.learnLimit, lim=self.dayCutoff)
card.type = 1 card.type = 1
card.interval = int_ card.interval = int_
card.factor = conf['initialFactor'] card.factor = conf['initialFactor']
print "logs for learning cards?"
else: else:
# failed card # failed card
pass pass
def logLearn(self, card, ease, conf): def logLearn(self, card, ease, conf, leaving):
self.deck.db.execute( self.deck.db.execute(
"insert into revlog values (?,?,?,?,?,?,?,?,?)", "insert into revlog values (?,?,?,?,?,?,?,?,?)",
int(time.time()*1000), card.id, ease, card.cycles, int(time.time()*1000), card.id, ease, card.cycles,
self.delayForGrade(conf, card.grade), self.delayForGrade(conf, card.grade),
self.delayForGrade(conf, max(0, card.grade-1)), self.delayForGrade(conf, max(0, card.grade-1)),
0, card.timeTaken(), 0) leaving, card.timeTaken(), 0)
# Reviews # Reviews
########################################################################## ##########################################################################