diff --git a/src/calibre/ebooks/metadata/docx.py b/src/calibre/ebooks/metadata/docx.py index fa56f265d6..05bf6d9ffc 100644 --- a/src/calibre/ebooks/metadata/docx.py +++ b/src/calibre/ebooks/metadata/docx.py @@ -13,7 +13,7 @@ from lxml import etree from calibre.ebooks.docx.container import DOCX from calibre.ebooks.docx.writer.container import update_doc_props, xml2str -from calibre.utils.magick.draw import identify_data +from calibre.utils.imghdr import identify def get_cover(docx): doc = docx.document @@ -26,7 +26,7 @@ def get_cover(docx): if rid in rid_map: try: raw = docx.read(rid_map[rid]) - width, height, fmt = identify_data(raw) + fmt, width, height = identify(bytes(raw)) except Exception: continue if 0.8 <= height/width <= 1.8 and height*width >= 160000: diff --git a/src/calibre/ebooks/metadata/epub.py b/src/calibre/ebooks/metadata/epub.py index 5142e52f45..2be9b8ec3f 100644 --- a/src/calibre/ebooks/metadata/epub.py +++ b/src/calibre/ebooks/metadata/epub.py @@ -247,7 +247,7 @@ def get_quick_metadata(stream): return get_metadata(stream, False) def _write_new_cover(new_cdata, cpath): - from calibre.utils.magick.draw import save_cover_data_to + from calibre.utils.img import save_cover_data_to new_cover = PersistentTemporaryFile(suffix=os.path.splitext(cpath)[1]) new_cover.close() save_cover_data_to(new_cdata, new_cover.name) @@ -317,7 +317,7 @@ def set_metadata(stream, mi, apply_null=False, update_timestamp=False, force_ide if cover_replacable: new_cover = _write_new_cover(new_cdata, cpath) replacements[cpath] = open(new_cover.name, 'rb') - except: + except Exception: import traceback traceback.print_exc() diff --git a/src/calibre/ebooks/metadata/extz.py b/src/calibre/ebooks/metadata/extz.py index c7dd8d356b..d4a0400764 100644 --- a/src/calibre/ebooks/metadata/extz.py +++ b/src/calibre/ebooks/metadata/extz.py @@ -98,7 +98,7 @@ def get_first_opf_name(zf): return opfs[0] def _write_new_cover(new_cdata, cpath): - from calibre.utils.magick.draw import save_cover_data_to + from calibre.utils.img import save_cover_data_to new_cover = PersistentTemporaryFile(suffix=os.path.splitext(cpath)[1]) new_cover.close() save_cover_data_to(new_cdata, new_cover.name) diff --git a/src/calibre/ebooks/metadata/fb2.py b/src/calibre/ebooks/metadata/fb2.py index 3a071d926f..c7014af31a 100644 --- a/src/calibre/ebooks/metadata/fb2.py +++ b/src/calibre/ebooks/metadata/fb2.py @@ -13,7 +13,8 @@ from base64 import b64encode from lxml import etree from calibre.utils.date import parse_only_date -from calibre.utils.magick.draw import save_cover_data_to, identify_data +from calibre.utils.img import save_cover_data_to +from calibre.utils.imghdr import identify from calibre import guess_type, guess_all_extensions, prints, force_unicode from calibre.ebooks.metadata import MetaInformation, check_isbn from calibre.ebooks.chardet import xml_to_unicode @@ -211,7 +212,7 @@ def _parse_cover_data(root, imgid, mi, ctx): pic_data = elm_binary[0].text if pic_data: cdata = base64_decode(pic_data.strip()) - fmt = identify_data(cdata)[-1] + fmt = identify(bytes(cdata))[0] mi.cover_data = (fmt, cdata) else: prints("WARNING: Unsupported coverpage mime-type '%s' (id=#%s)" % (mimetype, imgid)) @@ -342,7 +343,7 @@ def _rnd_pic_file_name(prefix='calibre_cover_', size=32, ext='jpg'): return prefix + _rnd_name(size=size) + '.' + ext def _encode_into_jpeg(data): - data = save_cover_data_to(data, 'cover.jpg', return_data=True) + data = save_cover_data_to(data) return b64encode(data) def _set_cover(title_info, mi, ctx): diff --git a/src/calibre/ebooks/metadata/mobi.py b/src/calibre/ebooks/metadata/mobi.py index 112fd80acb..4256062a36 100644 --- a/src/calibre/ebooks/metadata/mobi.py +++ b/src/calibre/ebooks/metadata/mobi.py @@ -467,7 +467,7 @@ def get_metadata(stream): from calibre.ptempfile import TemporaryDirectory from calibre.ebooks.mobi.reader.headers import MetadataHeader from calibre.ebooks.mobi.reader.mobi6 import MobiReader - from calibre.utils.magick.draw import save_cover_data_to + from calibre.utils.img import save_cover_data_to from calibre import CurrentDir stream.seek(0) @@ -517,7 +517,7 @@ def get_metadata(stream): data = '' if data and what(None, data) in {'jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp'}: try: - mi.cover_data = ('jpg', save_cover_data_to(data, 'cover.jpg', return_data=True)) + mi.cover_data = ('jpg', save_cover_data_to(data)) except Exception: log.exception('Failed to read MOBI cover') return mi diff --git a/src/calibre/ebooks/metadata/odt.py b/src/calibre/ebooks/metadata/odt.py index 8a7ae21d0e..31129f5281 100644 --- a/src/calibre/ebooks/metadata/odt.py +++ b/src/calibre/ebooks/metadata/odt.py @@ -30,7 +30,7 @@ from odf.opendocument import load as odLoad from odf.draw import Image as odImage, Frame as odFrame from calibre.ebooks.metadata import MetaInformation, string_to_authors, check_isbn -from calibre.utils.magick.draw import identify_data +from calibre.utils.img import identify from calibre.utils.date import parse_date from calibre.utils.localization import canonicalize_lang @@ -236,8 +236,8 @@ def read_cover(stream, zin, mi, opfmeta, extract_cover): except KeyError: continue try: - width, height, fmt = identify_data(raw) - except: + fmt, width, height = identify(bytes(raw)) + except Exception: continue imgnum += 1 if opfmeta and frm.getAttribute('name').lower() == u'opf.cover': @@ -259,8 +259,8 @@ def read_cover(stream, zin, mi, opfmeta, extract_cover): if not cover_data: raw = zin.read(cover_href) try: - width, height, fmt = identify_data(raw) - except: + fmt, width, height = identify(bytes(raw)) + except Exception: pass else: cover_data = (fmt, raw)