From 1bbffec0d6f3b54d51e9ee2b7a6b9b46fbc5b529 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 9 Dec 2010 12:53:01 +0900 Subject: [PATCH] abort download missing media early; remove obsolete forceMediaDir --- anki/deck.py | 7 +------ anki/media.py | 13 ++++++------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/anki/deck.py b/anki/deck.py index 4df5ca5e2..9e5ba0aef 100644 --- a/anki/deck.py +++ b/anki/deck.py @@ -152,7 +152,6 @@ class Deck(object): def _initVars(self): self.tmpMediaDir = None - self.forceMediaDir = None self.lastTags = u"" self.lastLoaded = time.time() self.undoEnabled = False @@ -2998,11 +2997,7 @@ where key = :key""", key=key, value=value): def mediaDir(self, create=False): "Return the media directory if exists. None if couldn't create." 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: # don't create, but return dir return dir diff --git a/anki/media.py b/anki/media.py index 99e3905dc..bd41ddbbc 100644 --- a/anki/media.py +++ b/anki/media.py @@ -245,7 +245,6 @@ def downloadMissing(deck): if not urls: return None mdir = deck.mediaDir(create=True) - os.chdir(mdir) deck.startProgress() missing = {} 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): if not os.path.exists(os.path.join(mdir, fname)) and mid in urls: missing[fname] = mid - success = 0 for c, file in enumerate(missing.keys()): deck.updateProgress(label=_("Downloading %(a)d of %(b)d...") % { 'a': c, 'b': len(missing), }) try: - data = urllib2.urlopen(urls[missing[file]] + file).read() - open(file, "wb").write(data) - success += 1 + path = urls[missing[file]] + file + url = urllib2.urlopen(path) + open(file, "wb").write(url.read()) except: - pass + deck.finishProgress() + return (False, path) deck.finishProgress() - return len(missing), success + return (True, len(missing)) # Export original files ##########################################################################