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 lxml import etree
|
||||||
|
|
||||||
from calibre.customize.conversion import InputFormatPlugin
|
from calibre.customize.conversion import InputFormatPlugin, OptionRecommendation
|
||||||
|
|
||||||
class EPUBInput(InputFormatPlugin):
|
class EPUBInput(InputFormatPlugin):
|
||||||
|
|
||||||
@ -17,6 +17,8 @@ class EPUBInput(InputFormatPlugin):
|
|||||||
description = 'Convert EPUB files (.epub) to HTML'
|
description = 'Convert EPUB files (.epub) to HTML'
|
||||||
file_types = set(['epub'])
|
file_types = set(['epub'])
|
||||||
|
|
||||||
|
recommendations = set([('page_breaks_before', '/', OptionRecommendation.MED)])
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def decrypt_font(cls, key, path):
|
def decrypt_font(cls, key, path):
|
||||||
raw = open(path, 'rb').read()
|
raw = open(path, 'rb').read()
|
||||||
|
@ -87,6 +87,7 @@ class MergeMetadata(object):
|
|||||||
if cover_id is not None:
|
if cover_id is not None:
|
||||||
m.add('cover', cover_id)
|
m.add('cover', cover_id)
|
||||||
|
|
||||||
|
|
||||||
def set_cover(self, mi, prefer_metadata_cover):
|
def set_cover(self, mi, prefer_metadata_cover):
|
||||||
cdata = ''
|
cdata = ''
|
||||||
if mi.cover and os.access(mi.cover, os.R_OK):
|
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]:
|
elif mi.cover_data and mi.cover_data[-1]:
|
||||||
cdata = mi.cover_data[1]
|
cdata = mi.cover_data[1]
|
||||||
id = None
|
id = None
|
||||||
if 'cover' in self.oeb.guide:
|
old_cover = self.oeb.guide.remove('cover')
|
||||||
href = self.oeb.guide['cover'].href
|
self.oeb.guide.remove('titlepage')
|
||||||
id = self.oeb.manifest.hrefs[href].id
|
if old_cover is not None:
|
||||||
if not prefer_metadata_cover and cdata:
|
if old_cover.href in self.oeb.manifest.hrefs:
|
||||||
self.oeb.manifest.hrefs[href]._data = cdata
|
item = self.oeb.manifest.hrefs[old_cover.href]
|
||||||
elif cdata:
|
self.oeb.manifest.remove(item)
|
||||||
|
if cdata:
|
||||||
id, href = self.oeb.manifest.generate('cover', 'cover.jpg')
|
id, href = self.oeb.manifest.generate('cover', 'cover.jpg')
|
||||||
self.oeb.manifest.add(id, href, 'image/jpeg', data=cdata)
|
self.oeb.manifest.add(id, href, 'image/jpeg', data=cdata)
|
||||||
self.oeb.guide.add('cover', 'Cover', href)
|
self.oeb.guide.add('cover', 'Cover', href)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user