From b7d0609ac84f22f47699c29efa003bfeb8978078 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 12 Apr 2012 15:20:24 +0530 Subject: [PATCH] Fix cover download failing on some non-english windows installs --- src/calibre/ebooks/metadata/sources/worker.py | 6 ++++-- src/calibre/gui2/metadata/bulk_download.py | 4 ++-- src/calibre/gui2/metadata/single_download.py | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/calibre/ebooks/metadata/sources/worker.py b/src/calibre/ebooks/metadata/sources/worker.py index 79b9590922..48f0f99584 100644 --- a/src/calibre/ebooks/metadata/sources/worker.py +++ b/src/calibre/ebooks/metadata/sources/worker.py @@ -48,7 +48,8 @@ def merge_result(oldmi, newmi, ensure_fields=None): return newmi -def main(do_identify, covers, metadata, ensure_fields): +def main(do_identify, covers, metadata, ensure_fields, tdir): + os.chdir(tdir) failed_ids = set() failed_covers = set() all_failed = True @@ -103,7 +104,8 @@ def single_identify(title, authors, identifiers): return [metadata_to_opf(r) for r in results], [r.has_cached_cover_url for r in results], dump_caches(), log.dump() -def single_covers(title, authors, identifiers, caches): +def single_covers(title, authors, identifiers, caches, tdir): + os.chdir(tdir) load_caches(caches) log = GUILog() results = Queue() diff --git a/src/calibre/gui2/metadata/bulk_download.py b/src/calibre/gui2/metadata/bulk_download.py index b199468309..9c56b5b0f8 100644 --- a/src/calibre/gui2/metadata/bulk_download.py +++ b/src/calibre/gui2/metadata/bulk_download.py @@ -232,8 +232,8 @@ def download(all_ids, tf, db, do_identify, covers, ensure_fields, metadata.iteritems()} try: ret = fork_job('calibre.ebooks.metadata.sources.worker', 'main', - (do_identify, covers, metadata, ensure_fields), - cwd=tdir, abort=abort, heartbeat=heartbeat, no_output=True) + (do_identify, covers, metadata, ensure_fields, tdir), + abort=abort, heartbeat=heartbeat, no_output=True) except WorkerError as e: if e.orig_tb: raise Exception('Failed to download metadata. Original ' diff --git a/src/calibre/gui2/metadata/single_download.py b/src/calibre/gui2/metadata/single_download.py index 6fc209509d..d7932b5ff4 100644 --- a/src/calibre/gui2/metadata/single_download.py +++ b/src/calibre/gui2/metadata/single_download.py @@ -573,8 +573,9 @@ class CoverWorker(Thread): # {{{ try: res = fork_job('calibre.ebooks.metadata.sources.worker', 'single_covers', - (self.title, self.authors, self.identifiers, self.caches), - cwd=tdir, no_output=True, abort=self.abort) + (self.title, self.authors, self.identifiers, self.caches, + tdir), + no_output=True, abort=self.abort) self.log.append_dump(res['result']) finally: self.keep_going = False