normalize for check, but not for db

This commit is contained in:
Damien Elmes 2011-01-18 01:18:29 +09:00
parent 98fb0f5bb9
commit e55d4768a3

View file

@ -143,6 +143,7 @@ def rebuildMediaDir(deck, delete=False, dirty=True):
deck.s.statement("update media set size = 0") deck.s.statement("update media set size = 0")
# look through cards for media references # look through cards for media references
refs = {} refs = {}
normrefs = {}
def norm(s): def norm(s):
if isinstance(s, unicode): if isinstance(s, unicode):
return unicodedata.normalize('NFD', s) return unicodedata.normalize('NFD', s)
@ -151,11 +152,11 @@ def rebuildMediaDir(deck, delete=False, dirty=True):
"select question, answer from cards"): "select question, answer from cards"):
for txt in (question, answer): for txt in (question, answer):
for f in mediaFiles(txt): for f in mediaFiles(txt):
f = norm(f)
if f in refs: if f in refs:
refs[f] += 1 refs[f] += 1
else: else:
refs[f] = 1 refs[f] = 1
normrefs[norm(f)] = True
# update ref counts # update ref counts
for (file, count) in refs.items(): for (file, count) in refs.items():
updateMediaCount(deck, file, count) updateMediaCount(deck, file, count)
@ -167,7 +168,7 @@ def rebuildMediaDir(deck, delete=False, dirty=True):
# ignore directories # ignore directories
continue continue
file = norm(file) file = norm(file)
if file not in refs: if file not in normrefs:
unused.append(file) unused.append(file)
# optionally delete # optionally delete
if delete: if delete: