diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 25ad089afa..069d13b55d 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -76,7 +76,9 @@ class EPUBMetadataReader(MetadataReaderPlugin): description = _('Read metadata from %s files')%'EPUB' def get_metadata(self, stream, ftype): - from calibre.ebooks.metadata.epub import get_metadata + from calibre.ebooks.metadata.epub import get_metadata, get_quick_metadata + if self.quick: + return get_quick_metadata(stream) return get_metadata(stream) class FB2MetadataReader(MetadataReaderPlugin): diff --git a/src/calibre/ebooks/metadata/epub.py b/src/calibre/ebooks/metadata/epub.py index 9fd8bf44e9..bd5f06fa95 100644 --- a/src/calibre/ebooks/metadata/epub.py +++ b/src/calibre/ebooks/metadata/epub.py @@ -130,6 +130,9 @@ def get_metadata(stream, extract_cover=True): traceback.print_exc() return mi +def get_quick_metadata(stream): + return get_metadata(stream, False) + def set_metadata(stream, mi): stream.seek(0) reader = OCFZipReader(stream, root=os.getcwdu()) diff --git a/src/calibre/ebooks/metadata/pdf.py b/src/calibre/ebooks/metadata/pdf.py index da7a50bab6..3881f65c63 100644 --- a/src/calibre/ebooks/metadata/pdf.py +++ b/src/calibre/ebooks/metadata/pdf.py @@ -22,6 +22,11 @@ from calibre.utils.podofo import get_metadata as podofo_get_metadata, \ from calibre.utils.poppler import get_metadata as get_metadata_poppler, NotAvailable def get_quick_metadata(stream): + try: + return get_metadata_poppler(stream, False) + except NotAvailable: + pass + return get_metadata_pypdf(stream) raw = stream.read() mi = get_metadata_quick(raw) diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index d5d4b01cee..39b2fae678 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -914,8 +914,12 @@ class Manifest(object): p.remove(a) if a.tail: if idx <= 0: + if p.text is None: + p.text = '' p.text += a.tail else: + if p[idx].tail is None: + p[idx].tail = '' p[idx].tail += a.tail return data