Remove IM from the metadata subsystem

This commit is contained in:
Kovid Goyal 2016-05-05 08:08:42 +05:30
parent 5593a1af48
commit 0ae69c8f96
6 changed files with 16 additions and 15 deletions

View File

@ -13,7 +13,7 @@ from lxml import etree
from calibre.ebooks.docx.container import DOCX from calibre.ebooks.docx.container import DOCX
from calibre.ebooks.docx.writer.container import update_doc_props, xml2str 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): def get_cover(docx):
doc = docx.document doc = docx.document
@ -26,7 +26,7 @@ def get_cover(docx):
if rid in rid_map: if rid in rid_map:
try: try:
raw = docx.read(rid_map[rid]) raw = docx.read(rid_map[rid])
width, height, fmt = identify_data(raw) fmt, width, height = identify(bytes(raw))
except Exception: except Exception:
continue continue
if 0.8 <= height/width <= 1.8 and height*width >= 160000: if 0.8 <= height/width <= 1.8 and height*width >= 160000:

View File

@ -247,7 +247,7 @@ def get_quick_metadata(stream):
return get_metadata(stream, False) return get_metadata(stream, False)
def _write_new_cover(new_cdata, cpath): 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 = PersistentTemporaryFile(suffix=os.path.splitext(cpath)[1])
new_cover.close() new_cover.close()
save_cover_data_to(new_cdata, new_cover.name) 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: if cover_replacable:
new_cover = _write_new_cover(new_cdata, cpath) new_cover = _write_new_cover(new_cdata, cpath)
replacements[cpath] = open(new_cover.name, 'rb') replacements[cpath] = open(new_cover.name, 'rb')
except: except Exception:
import traceback import traceback
traceback.print_exc() traceback.print_exc()

View File

@ -98,7 +98,7 @@ def get_first_opf_name(zf):
return opfs[0] return opfs[0]
def _write_new_cover(new_cdata, cpath): 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 = PersistentTemporaryFile(suffix=os.path.splitext(cpath)[1])
new_cover.close() new_cover.close()
save_cover_data_to(new_cdata, new_cover.name) save_cover_data_to(new_cdata, new_cover.name)

View File

@ -13,7 +13,8 @@ from base64 import b64encode
from lxml import etree from lxml import etree
from calibre.utils.date import parse_only_date 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 import guess_type, guess_all_extensions, prints, force_unicode
from calibre.ebooks.metadata import MetaInformation, check_isbn from calibre.ebooks.metadata import MetaInformation, check_isbn
from calibre.ebooks.chardet import xml_to_unicode 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 pic_data = elm_binary[0].text
if pic_data: if pic_data:
cdata = base64_decode(pic_data.strip()) cdata = base64_decode(pic_data.strip())
fmt = identify_data(cdata)[-1] fmt = identify(bytes(cdata))[0]
mi.cover_data = (fmt, cdata) mi.cover_data = (fmt, cdata)
else: else:
prints("WARNING: Unsupported coverpage mime-type '%s' (id=#%s)" % (mimetype, imgid)) 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 return prefix + _rnd_name(size=size) + '.' + ext
def _encode_into_jpeg(data): 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) return b64encode(data)
def _set_cover(title_info, mi, ctx): def _set_cover(title_info, mi, ctx):

View File

@ -467,7 +467,7 @@ def get_metadata(stream):
from calibre.ptempfile import TemporaryDirectory from calibre.ptempfile import TemporaryDirectory
from calibre.ebooks.mobi.reader.headers import MetadataHeader from calibre.ebooks.mobi.reader.headers import MetadataHeader
from calibre.ebooks.mobi.reader.mobi6 import MobiReader 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 from calibre import CurrentDir
stream.seek(0) stream.seek(0)
@ -517,7 +517,7 @@ def get_metadata(stream):
data = '' data = ''
if data and what(None, data) in {'jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp'}: if data and what(None, data) in {'jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp'}:
try: 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: except Exception:
log.exception('Failed to read MOBI cover') log.exception('Failed to read MOBI cover')
return mi return mi

View File

@ -30,7 +30,7 @@ from odf.opendocument import load as odLoad
from odf.draw import Image as odImage, Frame as odFrame from odf.draw import Image as odImage, Frame as odFrame
from calibre.ebooks.metadata import MetaInformation, string_to_authors, check_isbn 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.date import parse_date
from calibre.utils.localization import canonicalize_lang from calibre.utils.localization import canonicalize_lang
@ -236,8 +236,8 @@ def read_cover(stream, zin, mi, opfmeta, extract_cover):
except KeyError: except KeyError:
continue continue
try: try:
width, height, fmt = identify_data(raw) fmt, width, height = identify(bytes(raw))
except: except Exception:
continue continue
imgnum += 1 imgnum += 1
if opfmeta and frm.getAttribute('name').lower() == u'opf.cover': 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: if not cover_data:
raw = zin.read(cover_href) raw = zin.read(cover_href)
try: try:
width, height, fmt = identify_data(raw) fmt, width, height = identify(bytes(raw))
except: except Exception:
pass pass
else: else:
cover_data = (fmt, raw) cover_data = (fmt, raw)