mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix re-importing of cover data from a ebook that has been previously saved to disk
This commit is contained in:
parent
1697a8b535
commit
6e8f39d669
@ -75,7 +75,7 @@ class MetaInformation(object):
|
||||
self.rating = None if not mi else mi.rating
|
||||
self.isbn = None if not mi else mi.isbn
|
||||
self.tags = [] if not mi else mi.tags
|
||||
self.cover_data = (None, None) if not mi else mi.cover_data #(extension, data)
|
||||
self.cover_data = mi.cover_data if (mi and hasattr(mi, 'cover_data')) else (None, None)
|
||||
|
||||
|
||||
def smart_update(self, mi):
|
||||
@ -100,7 +100,7 @@ class MetaInformation(object):
|
||||
self.tags += mi.tags
|
||||
self.tags = list(set(self.tags))
|
||||
|
||||
if mi.cover_data[0] is not None:
|
||||
if hasattr(mi, 'cover_data') and mi.cover_data[0] is not None:
|
||||
self.cover_data = mi.cover_data
|
||||
|
||||
|
||||
|
@ -107,13 +107,19 @@ def metadata_from_filename(name, pat=None):
|
||||
def libprs_metadata(name):
|
||||
if os.path.basename(name) != 'metadata.opf':
|
||||
name = os.path.join(os.path.dirname(name), 'metadata.opf')
|
||||
name = os.path.abspath(name)
|
||||
if os.access(name, os.R_OK):
|
||||
print name
|
||||
name = os.path.abspath(name)
|
||||
f = open(name, 'rb')
|
||||
opf = OPFReader(f, os.path.dirname(name))
|
||||
try:
|
||||
if opf.libprs_id is not None:
|
||||
return MetaInformation(opf, None)
|
||||
mi = MetaInformation(opf, None)
|
||||
if hasattr(opf, 'cover') and opf.cover:
|
||||
cpath = os.path.join(os.path.dirname(name), opf.cover)
|
||||
if os.access(cpath, os.R_OK):
|
||||
fmt = cpath.rpartition('.')[-1]
|
||||
data = open(cpath, 'rb').read()
|
||||
mi.cover_data = (fmt, data)
|
||||
return mi
|
||||
except:
|
||||
pass
|
@ -536,6 +536,7 @@ class OPFReader(OPF):
|
||||
self.manifest = Manifest(self.soup, dir)
|
||||
self.spine = Spine(self.soup, self.manifest)
|
||||
self.toc = TOC(self, dir)
|
||||
self.cover_data = (None, None)
|
||||
|
||||
class OPFCreator(OPF):
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user