diff --git a/anki/stats.py b/anki/stats.py index 8dfc80267..f10f18897 100644 --- a/anki/stats.py +++ b/anki/stats.py @@ -539,32 +539,49 @@ cards.factId = fields.factId out += "" return out - def missingReport(self): - out = "

Missing kanji

" + def missingReport(self, check=None): + if not check: + check = lambda x, y: x not in y + out = _("

Missing

") + else: + out = _("

Seen

") for grade in range(1, 9): - missing = "".join(self.missingInGrade(grade)) + missing = "".join(self.missingInGrade(grade, check)) if not missing: continue out += "

" + self.kanjiGrades[grade][0] + "

" out += "" - while 1: - if not missing: - break - # edict will take up to about 10 kanji at once - out += self.edictKanjiLink(missing[0:10]) - missing = missing[10:] + out += self.mkEdict(missing) out += "" return out + "
" + def mkEdict(self, kanji): + out = "" + while 1: + if not kanji: + out += "" + return out + # edict will take up to about 10 kanji at once + out += self.edictKanjiLink(kanji[0:10]) + kanji = kanji[10:] + + def seenReport(self): + return self.missingReport(lambda x, y: x in y) + + def nonJouyouReport(self): + out = _("

Non-Jouyou

") + out += self.mkEdict("".join(self.kanjiSets[0])) + return out + "
" + def edictKanjiLink(self, kanji): base="http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?1MMJ" url=base + kanji return '%s' % (url, kanji) - def missingInGrade(self, gradeNum): + def missingInGrade(self, gradeNum, check): existingKanji = self.kanjiSets[gradeNum] totalKanji = self.kanjiGrades[gradeNum][1] - return [k for k in totalKanji if k not in existingKanji] + return [k for k in totalKanji if check(k, existingKanji)] kanjiGrades = [ (u'non-jouyou', ''),