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', ''),