mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
EPUB Input:Fix handling of user specified cover. Also set --page-breaks-before to / by default for EPUB input, since EPUB files typically already have the needed page breaks
This commit is contained in:
parent
8e754b3245
commit
272437e901
@ -8,7 +8,7 @@ from itertools import cycle
|
||||
|
||||
from lxml import etree
|
||||
|
||||
from calibre.customize.conversion import InputFormatPlugin
|
||||
from calibre.customize.conversion import InputFormatPlugin, OptionRecommendation
|
||||
|
||||
class EPUBInput(InputFormatPlugin):
|
||||
|
||||
@ -17,6 +17,8 @@ class EPUBInput(InputFormatPlugin):
|
||||
description = 'Convert EPUB files (.epub) to HTML'
|
||||
file_types = set(['epub'])
|
||||
|
||||
recommendations = set([('page_breaks_before', '/', OptionRecommendation.MED)])
|
||||
|
||||
@classmethod
|
||||
def decrypt_font(cls, key, path):
|
||||
raw = open(path, 'rb').read()
|
||||
|
@ -87,6 +87,7 @@ class MergeMetadata(object):
|
||||
if cover_id is not None:
|
||||
m.add('cover', cover_id)
|
||||
|
||||
|
||||
def set_cover(self, mi, prefer_metadata_cover):
|
||||
cdata = ''
|
||||
if mi.cover and os.access(mi.cover, os.R_OK):
|
||||
@ -94,12 +95,13 @@ class MergeMetadata(object):
|
||||
elif mi.cover_data and mi.cover_data[-1]:
|
||||
cdata = mi.cover_data[1]
|
||||
id = None
|
||||
if 'cover' in self.oeb.guide:
|
||||
href = self.oeb.guide['cover'].href
|
||||
id = self.oeb.manifest.hrefs[href].id
|
||||
if not prefer_metadata_cover and cdata:
|
||||
self.oeb.manifest.hrefs[href]._data = cdata
|
||||
elif cdata:
|
||||
old_cover = self.oeb.guide.remove('cover')
|
||||
self.oeb.guide.remove('titlepage')
|
||||
if old_cover is not None:
|
||||
if old_cover.href in self.oeb.manifest.hrefs:
|
||||
item = self.oeb.manifest.hrefs[old_cover.href]
|
||||
self.oeb.manifest.remove(item)
|
||||
if cdata:
|
||||
id, href = self.oeb.manifest.generate('cover', 'cover.jpg')
|
||||
self.oeb.manifest.add(id, href, 'image/jpeg', data=cdata)
|
||||
self.oeb.guide.add('cover', 'Cover', href)
|
||||
|
Loading…
x
Reference in New Issue
Block a user