From d23ce51b98629014b0d4ba899b89d74d9ba51812 Mon Sep 17 00:00:00 2001
From: John Schember
Date: Wed, 5 Jan 2011 18:30:50 -0500
Subject: [PATCH] FB2 Ouput: Insert image based covers into document.
---
src/calibre/ebooks/fb2/fb2ml.py | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/calibre/ebooks/fb2/fb2ml.py b/src/calibre/ebooks/fb2/fb2ml.py
index 8d23a5f0b2..f6deab677a 100644
--- a/src/calibre/ebooks/fb2/fb2ml.py
+++ b/src/calibre/ebooks/fb2/fb2ml.py
@@ -16,6 +16,7 @@ import uuid
from lxml import etree
+from calibre import guess_type
from calibre import prepare_string_for_xml
from calibre.constants import __appname__, __version__
from calibre.ebooks.oeb.base import XHTML, XHTML_NS, barename, namespace
@@ -171,6 +172,12 @@ class FB2MLizer(object):
title_item = self.oeb_book.manifest.hrefs[self.oeb_book.guide[title_name].href]
if title_item.spine_position is None and title_item.media_type == 'application/xhtml+xml':
self.oeb_book.spine.insert(0, title_item, True)
+ # Create xhtml page to reference cover image so it can be used.
+ if self.oeb_book.metadata.cover and unicode(self.oeb_book.metadata.cover[0]) in self.oeb_book.manifest.ids:
+ id = unicode(self.oeb_book.metadata.cover[0])
+ cover_item = self.oeb_book.manifest.ids[id]
+ if cover_item.media_type in OEB_RASTER_IMAGES:
+ self.insert_image_cover(cover_item.href)
for item in self.oeb_book.spine:
self.log.debug('Converting %s to FictionBook2 XML' % item.href)
@@ -196,6 +203,17 @@ class FB2MLizer(object):
return ''.join(text) + '
