From 9cf9ccd52bc278ff7785427ff29155a0e90c8301 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 13 Jan 2009 14:05:37 -0800 Subject: [PATCH] Fix #1608 (Cover not found in Mobipocket file) --- src/calibre/ebooks/mobi/reader.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/mobi/reader.py b/src/calibre/ebooks/mobi/reader.py index e46f3a8a82..ebdceda002 100644 --- a/src/calibre/ebooks/mobi/reader.py +++ b/src/calibre/ebooks/mobi/reader.py @@ -33,7 +33,6 @@ class EXTHHeader(object): self.length, self.num_items = struct.unpack('>LL', raw[4:12]) raw = raw[12:] pos = 0 - self.mi = MetaInformation('Unknown', ['Unknown']) self.has_fake_cover = True @@ -49,6 +48,8 @@ class EXTHHeader(object): self.cover_offset, = struct.unpack('>L', content) elif id == 202: self.thumbnail_offset, = struct.unpack('>L', content) + #else: + # print 'unknown record', id, repr(content) title = re.search(r'\0+([^\0]+)\0+', raw[pos:]) if title: self.mi.title = title.group(1).decode(codec, 'ignore') @@ -67,7 +68,8 @@ class EXTHHeader(object): if not self.mi.tags: self.mi.tags = [] self.mi.tags.append(content.decode(codec, 'ignore')) - + #else: + # print 'unhandled metadata record', id, repr(content), codec class BookHeader(object): @@ -466,6 +468,10 @@ def get_metadata(stream): cover = os.path.join(tdir, mi.cover) if os.access(cover, os.R_OK): mi.cover_data = ('JPEG', open(os.path.join(tdir, mi.cover), 'rb').read()) + else: + path = os.path.join(tdir, 'images', '00001.jpg') + if os.access(path, os.R_OK): + mi.cover_data = ('JPEG', open(path, 'rb').read()) return mi def option_parser():