Make metadata reading more robust

This commit is contained in:
Kovid Goyal 2008-05-02 15:35:26 -07:00
parent 88d138d221
commit 8d3c4f56c5

View File

@ -132,9 +132,13 @@ def metadata_from_filename(name, pat=None):
return mi return mi
def opf_metadata(opfpath): def opf_metadata(opfpath):
f = open(opfpath, 'rb') if hasattr(opfpath, 'read'):
opf = OPFReader(f, os.path.dirname(opfpath)) f = opfpath
opfpath = getattr(f, 'name', '')
else:
f = open(opfpath, 'rb')
try: try:
opf = OPFReader(f, os.path.dirname(opfpath))
if opf.application_id is not None: if opf.application_id is not None:
mi = MetaInformation(opf, None) mi = MetaInformation(opf, None)
if hasattr(opf, 'cover') and opf.cover: if hasattr(opf, 'cover') and opf.cover: