From 47b927f5bc88cfb248cccb1e10e2d3b263cffb3d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 30 Jul 2013 11:52:51 +0530 Subject: [PATCH] Make ignore_errors also work for setting covers --- src/calibre/db/cache.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 4b334fb794..505342173f 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -1085,14 +1085,18 @@ class Cache(object): raise # force_changes has no effect on cover manipulation - cdata = mi.cover_data[1] - if cdata is None and isinstance(mi.cover, basestring) and mi.cover and os.access(mi.cover, os.R_OK): - with lopen(mi.cover, 'rb') as f: - raw = f.read() - if raw: - cdata = raw - if cdata is not None: - self._set_cover({book_id: cdata}) + try: + cdata = mi.cover_data[1] + if cdata is None and isinstance(mi.cover, basestring) and mi.cover and os.access(mi.cover, os.R_OK): + with lopen(mi.cover, 'rb') as f: + cdata = f.read() or None + if cdata is not None: + self._set_cover({book_id: cdata}) + except: + if ignore_errors: + traceback.print_exc() + else: + raise try: with self.backend.conn: # Speed up set_metadata by not operating in autocommit mode