abort download missing media early; remove obsolete forceMediaDir

This commit is contained in:
Damien Elmes 2010-12-09 12:53:01 +09:00
parent e5d9697d28
commit 1bbffec0d6
2 changed files with 7 additions and 13 deletions

View file

@ -152,7 +152,6 @@ class Deck(object):
def _initVars(self): def _initVars(self):
self.tmpMediaDir = None self.tmpMediaDir = None
self.forceMediaDir = None
self.lastTags = u"" self.lastTags = u""
self.lastLoaded = time.time() self.lastLoaded = time.time()
self.undoEnabled = False self.undoEnabled = False
@ -2998,10 +2997,6 @@ where key = :key""", key=key, value=value):
def mediaDir(self, create=False): def mediaDir(self, create=False):
"Return the media directory if exists. None if couldn't create." "Return the media directory if exists. None if couldn't create."
if self.path: if self.path:
# file-backed
if self.forceMediaDir:
dir = self.forceMediaDir
else:
dir = re.sub("(?i)\.(anki)$", ".media", self.path) dir = re.sub("(?i)\.(anki)$", ".media", self.path)
if create == None: if create == None:
# don't create, but return dir # don't create, but return dir

View file

@ -245,7 +245,6 @@ def downloadMissing(deck):
if not urls: if not urls:
return None return None
mdir = deck.mediaDir(create=True) mdir = deck.mediaDir(create=True)
os.chdir(mdir)
deck.startProgress() deck.startProgress()
missing = {} missing = {}
for (id, fid, val, mid) in deck.s.all(""" for (id, fid, val, mid) in deck.s.all("""
@ -256,20 +255,20 @@ where facts.id = fields.factId"""):
for (full, fname, repl) in mediaRefs(val): for (full, fname, repl) in mediaRefs(val):
if not os.path.exists(os.path.join(mdir, fname)) and mid in urls: if not os.path.exists(os.path.join(mdir, fname)) and mid in urls:
missing[fname] = mid missing[fname] = mid
success = 0
for c, file in enumerate(missing.keys()): for c, file in enumerate(missing.keys()):
deck.updateProgress(label=_("Downloading %(a)d of %(b)d...") % { deck.updateProgress(label=_("Downloading %(a)d of %(b)d...") % {
'a': c, 'a': c,
'b': len(missing), 'b': len(missing),
}) })
try: try:
data = urllib2.urlopen(urls[missing[file]] + file).read() path = urls[missing[file]] + file
open(file, "wb").write(data) url = urllib2.urlopen(path)
success += 1 open(file, "wb").write(url.read())
except: except:
pass
deck.finishProgress() deck.finishProgress()
return len(missing), success return (False, path)
deck.finishProgress()
return (True, len(missing))
# Export original files # Export original files
########################################################################## ##########################################################################