mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #1702. Use the "cover" guide item when locating a cover image.
This commit is contained in:
parent
076ec9bbad
commit
c3cffa07fe
@ -1039,9 +1039,19 @@ class OEBBook(object):
|
|||||||
|
|
||||||
def _ensure_cover_image(self):
|
def _ensure_cover_image(self):
|
||||||
cover = None
|
cover = None
|
||||||
spine0 = self.spine[0]
|
hcover = self.spine[0]
|
||||||
html = spine0.data
|
if 'cover' in self.guide:
|
||||||
if self.metadata.cover:
|
href = self.guide['cover'].href
|
||||||
|
item = self.manifest.hrefs[href]
|
||||||
|
media_type = item.media_type
|
||||||
|
if media_type in OEB_RASTER_IMAGES:
|
||||||
|
cover = item
|
||||||
|
elif media_type in OEB_DOCS:
|
||||||
|
hcover = item
|
||||||
|
html = hcover.data
|
||||||
|
if cover is not None:
|
||||||
|
pass
|
||||||
|
elif self.metadata.cover:
|
||||||
id = str(self.metadata.cover[0])
|
id = str(self.metadata.cover[0])
|
||||||
cover = self.manifest.ids[id]
|
cover = self.manifest.ids[id]
|
||||||
elif MS_COVER_TYPE in self.guide:
|
elif MS_COVER_TYPE in self.guide:
|
||||||
@ -1049,16 +1059,16 @@ class OEBBook(object):
|
|||||||
cover = self.manifest.hrefs[href]
|
cover = self.manifest.hrefs[href]
|
||||||
elif xpath(html, '//h:img[position()=1]'):
|
elif xpath(html, '//h:img[position()=1]'):
|
||||||
img = xpath(html, '//h:img[position()=1]')[0]
|
img = xpath(html, '//h:img[position()=1]')[0]
|
||||||
href = spine0.abshref(img.get('src'))
|
href = hcover.abshref(img.get('src'))
|
||||||
cover = self.manifest.hrefs[href]
|
cover = self.manifest.hrefs[href]
|
||||||
elif xpath(html, '//h:object[position()=1]'):
|
elif xpath(html, '//h:object[position()=1]'):
|
||||||
object = xpath(html, '//h:object[position()=1]')[0]
|
object = xpath(html, '//h:object[position()=1]')[0]
|
||||||
href = spine0.abshref(object.get('data'))
|
href = hcover.abshref(object.get('data'))
|
||||||
cover = self.manifest.hrefs[href]
|
cover = self.manifest.hrefs[href]
|
||||||
elif xpath(html, '//svg:svg[position()=1]'):
|
elif xpath(html, '//svg:svg[position()=1]'):
|
||||||
svg = copy.deepcopy(xpath(html, '//svg:svg[position()=1]')[0])
|
svg = copy.deepcopy(xpath(html, '//svg:svg[position()=1]')[0])
|
||||||
href = os.path.splitext(spine0.href)[0] + '.svg'
|
href = os.path.splitext(hcover.href)[0] + '.svg'
|
||||||
id, href = self.manifest.generate(spine0.id, href)
|
id, href = self.manifest.generate(hcover.id, href)
|
||||||
cover = self.manifest.add(id, href, SVG_MIME, data=svg)
|
cover = self.manifest.add(id, href, SVG_MIME, data=svg)
|
||||||
if cover and not self.metadata.cover:
|
if cover and not self.metadata.cover:
|
||||||
self.metadata.add('cover', cover.id)
|
self.metadata.add('cover', cover.id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user