From 4ed4926bd843bbd5fdb5dd9e147755ed7591a396 Mon Sep 17 00:00:00 2001 From: j Date: Tue, 5 Jan 2016 15:30:15 +0530 Subject: [PATCH] epub: metadata.conver is id not name --- oml/media/epub.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/oml/media/epub.py b/oml/media/epub.py index 1268363..6d8b6fb 100644 --- a/oml/media/epub.py +++ b/oml/media/epub.py @@ -40,13 +40,16 @@ def cover(path): #logger.debug('opf: %s', z.read(opf[0]).decode()) info = ET.fromstring(z.read(opf[0])) metadata = info.findall('{http://www.idpf.org/2007/opf}metadata')[0] - for e in metadata.getchildren(): - if e.tag == '{http://www.idpf.org/2007/opf}meta' and e.attrib['name'] == 'cover': - filename = e.attrib['content'] - filename = [f for f in files if filename in f] - if filename: - return use(filename[0]) manifest = info.findall('{http://www.idpf.org/2007/opf}manifest')[0] + for e in metadata.getchildren(): + if e.tag == '{http://www.idpf.org/2007/opf}meta' and e.attrib.get('name') == 'cover': + cover_id = e.attrib['content'] + for e in manifest.getchildren(): + if e.attrib['id'] == cover_id: + filename = unquote(e.attrib['href']) + filename = os.path.normpath(os.path.join(os.path.dirname(opf[0]), filename)) + if filename in files: + return use(filename) images = [e for e in manifest.getchildren() if 'image' in e.attrib['media-type']] if images: image_data = []