From 8119b9e86870b4e2206aa7339db8f6e485ce552d Mon Sep 17 00:00:00 2001 From: John Schember Date: Sun, 1 Mar 2009 18:10:14 -0500 Subject: [PATCH] Fix open files with PDF metadata reader --- src/calibre/ebooks/metadata/meta.py | 14 +++++++------- src/calibre/ebooks/metadata/pdf.py | 6 ++++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index 1241238f26..43053a43b9 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -39,13 +39,13 @@ def metadata_from_formats(formats): return mi2 for path, ext in zip(formats, extensions): - stream = open(path, 'rb') - try: - mi.smart_update(get_metadata(stream, stream_type=ext, use_libprs_metadata=True)) - except: - continue - if getattr(mi, 'application_id', None) is not None: - return mi + with open(path, 'rb') as stream: + try: + mi.smart_update(get_metadata(stream, stream_type=ext, use_libprs_metadata=True)) + except: + continue + if getattr(mi, 'application_id', None) is not None: + return mi if not mi.title: mi.title = _('Unknown') diff --git a/src/calibre/ebooks/metadata/pdf.py b/src/calibre/ebooks/metadata/pdf.py index 8ff652c01b..8f73e04050 100644 --- a/src/calibre/ebooks/metadata/pdf.py +++ b/src/calibre/ebooks/metadata/pdf.py @@ -67,6 +67,8 @@ def set_metadata(stream, mi): stream.seek(0) def get_cover(stream): + data = StringIO.StringIO() + try: pdf = PdfFileReader(stream) output = PdfFileWriter() @@ -88,12 +90,12 @@ def get_cover(stream): img = Image.open('%s.jpg' % cover_path) - data = StringIO.StringIO() img.save(data, 'JPEG') - return data.getvalue() except: import traceback traceback.print_exc() + + return data.getvalue() def option_parser(): p = get_parser('pdf')