From 9aa41823b4b5f9199fc8eddb59f3597a26c8d160 Mon Sep 17 00:00:00 2001 From: beville Date: Fri, 25 Jan 2013 17:20:59 +0000 Subject: [PATCH] more vebose output for zip errors git-svn-id: http://comictagger.googlecode.com/svn/trunk@353 6c5673fe-1810-88d6-992b-cd32ca31540c --- comicarchive.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/comicarchive.py b/comicarchive.py index b3ebc63..92e4112 100644 --- a/comicarchive.py +++ b/comicarchive.py @@ -67,11 +67,13 @@ class ZipArchiver: zf = zipfile.ZipFile( self.path, 'r' ) try: data = zf.read( archive_file ) - except zipfile.BadZipfile: - print "bad zipfile: {0} :: {1}".format(self.path, archive_file) + except zipfile.BadZipfile as e: + print "bad zipfile [{0}]: {1} :: {2}".format(e, self.path, archive_file) + zf.close() raise IOError - except Exception: - print "bad zipfile: {0} :: {1}".format(self.path, archive_file) + except Exception as e: + zf.close() + print "bad zipfile [{0}]: {1} :: {2}".format(e, self.path, archive_file) raise IOError finally: zf.close() @@ -491,7 +493,9 @@ class UnknownArchiver: #------------------------------------------------------------------ class ComicArchive: - + + logo_data = None + class ArchiveType: Zip, Rar, Folder, Unknown = range(4) @@ -516,6 +520,12 @@ class ComicArchive: self.archive_type = self.ArchiveType.Unknown self.archiver = UnknownArchiver( self.path ) + if ComicArchive.logo_data is None: + fname = os.path.join(ComicTaggerSettings.baseDir(), 'graphics','nocover.png' ) + with open(fname, 'rb') as fd: + ComicArchive.logo_data = fd.read() + print len(ComicArchive.logo_data) + # Clears the cached data def resetCache( self ): self.has_cix = None @@ -650,9 +660,7 @@ class ComicArchive: image_data = self.archiver.readArchiveFile( filename ) except IOError: print "Error reading in page. Substituting logo page." - fname = os.path.join(ComicTaggerSettings.baseDir(), 'graphics/nocover.png' ) - with open(fname) as x: - image_data = x.read() + image_data = ComicArchive.logo_data return image_data