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'
|
description = _('Read metadata from %s files')%'EPUB'
|
||||||
|
|
||||||
def get_metadata(self, stream, ftype):
|
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)
|
return get_metadata(stream)
|
||||||
|
|
||||||
class FB2MetadataReader(MetadataReaderPlugin):
|
class FB2MetadataReader(MetadataReaderPlugin):
|
||||||
|
@ -130,6 +130,9 @@ def get_metadata(stream, extract_cover=True):
|
|||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return mi
|
return mi
|
||||||
|
|
||||||
|
def get_quick_metadata(stream):
|
||||||
|
return get_metadata(stream, False)
|
||||||
|
|
||||||
def set_metadata(stream, mi):
|
def set_metadata(stream, mi):
|
||||||
stream.seek(0)
|
stream.seek(0)
|
||||||
reader = OCFZipReader(stream, root=os.getcwdu())
|
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
|
from calibre.utils.poppler import get_metadata as get_metadata_poppler, NotAvailable
|
||||||
|
|
||||||
def get_quick_metadata(stream):
|
def get_quick_metadata(stream):
|
||||||
|
try:
|
||||||
|
return get_metadata_poppler(stream, False)
|
||||||
|
except NotAvailable:
|
||||||
|
pass
|
||||||
|
|
||||||
return get_metadata_pypdf(stream)
|
return get_metadata_pypdf(stream)
|
||||||
raw = stream.read()
|
raw = stream.read()
|
||||||
mi = get_metadata_quick(raw)
|
mi = get_metadata_quick(raw)
|
||||||
|
@ -914,8 +914,12 @@ class Manifest(object):
|
|||||||
p.remove(a)
|
p.remove(a)
|
||||||
if a.tail:
|
if a.tail:
|
||||||
if idx <= 0:
|
if idx <= 0:
|
||||||
|
if p.text is None:
|
||||||
|
p.text = ''
|
||||||
p.text += a.tail
|
p.text += a.tail
|
||||||
else:
|
else:
|
||||||
|
if p[idx].tail is None:
|
||||||
|
p[idx].tail = ''
|
||||||
p[idx].tail += a.tail
|
p[idx].tail += a.tail
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user