diff --git a/src/calibre/ebooks/epub/output.py b/src/calibre/ebooks/epub/output.py
index a43ca4e5e3..1b37f054b0 100644
--- a/src/calibre/ebooks/epub/output.py
+++ b/src/calibre/ebooks/epub/output.py
@@ -91,7 +91,7 @@ class EPUBOutput(OutputFormatPlugin):
self.condense_ncx([os.path.join(tdir, x) for x in os.listdir(tdir)\
if x.endswith('.ncx')][0])
- from calibre.epub import initialize_container
+ from calibre.ebooks.epub import initialize_container
epub = initialize_container(output_path, os.path.basename(opf))
epub.add_dir(tdir)
epub.close()
@@ -136,7 +136,7 @@ class EPUBOutput(OutputFormatPlugin):
if 'cover' in g:
tp = self.TITLEPAGE_COVER%unquote(g['cover'].href)
id, href = m.generate('titlepage', 'titlepage.xhtml')
- item = m.add(id, href, guess_type('t.xhtml'),
+ item = m.add(id, href, guess_type('t.xhtml')[0],
data=etree.fromstring(tp))
else:
item = self.default_cover()
@@ -146,7 +146,8 @@ class EPUBOutput(OutputFormatPlugin):
if item is not None:
self.oeb.spine.insert(0, item, True)
self.oeb.guide.refs['cover'].href = item.href
- self.oeb.guide.refs['titlepage'].href = item.href
+ if 'titlepage' in self.oeb.guide.refs:
+ self.oeb.guide.refs['titlepage'].href = item.href
@@ -180,7 +181,7 @@ class EPUBOutput(OutputFormatPlugin):
body = body[0]
# Replace
that are children of
tags, parsing using', + 'BeatifulSoup') + root = soupparser.fromstring(self.processed_html) self.upshift_markup(root) guides = root.xpath('//guide') guide = guides[0] if guides else None diff --git a/src/calibre/ebooks/oeb/transforms/guide.py b/src/calibre/ebooks/oeb/transforms/guide.py index dc7123446b..aaeba67d80 100644 --- a/src/calibre/ebooks/oeb/transforms/guide.py +++ b/src/calibre/ebooks/oeb/transforms/guide.py @@ -14,10 +14,6 @@ class Clean(object): from calibre.ebooks.oeb.base import urldefrag self.oeb, self.log, self.opts = oeb, oeb.log, opts - protected_hrefs = set([]) - if 'titlepage' in self.oeb.guide: - protected_hrefs.add(urldefrag( - self.oeb.guide['titlepage'].href)[0]) if 'cover' not in self.oeb.guide: covers = [] for x in ('other.ms-coverimage-standard', @@ -35,20 +31,10 @@ class Clean(object): self.log('Choosing %s:%s as the cover'%(ref.type, ref.href)) ref.type = 'cover' self.oeb.guide.refs['cover'] = ref - protected_hrefs.add(urldefrag(ref.href)[0]) - else: - protected_hrefs.add(urldefrag(self.oeb.guide.refs['cover'].href)[0]) for x in list(self.oeb.guide): href = urldefrag(self.oeb.guide[x].href)[0] if x.lower() not in ('cover', 'titlepage'): - try: - if href not in protected_hrefs: - item = self.oeb.manifest.hrefs[href] - if item not in self.oeb.spine: - self.oeb.manifest.remove(self.oeb.manifest.hrefs[href]) - except KeyError: - pass self.oeb.guide.remove(x)