mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Remove IM from the metadata subsystem
This commit is contained in:
parent
5593a1af48
commit
0ae69c8f96
@ -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:
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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):
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user