mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Speed up reading of metadata from EPUB files on the device. Also use poppler to read PDF metadata from device files.
This commit is contained in:
parent
966b915787
commit
33604318cb
@ -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):
|
||||
|
@ -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())
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user