From a7f259e7cce72c9d3475954a1d34bb6b01953818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 14 Jan 2014 10:28:13 +0100 Subject: [PATCH] Don't crash if the app icons are wrong --- fdroidserver/update.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index e204b638..17749216 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -296,7 +296,7 @@ def resize_icon(iconpath, density): print iconpath, "is small enough:", im.size except Exception,e: - print "ERROR: Failed resizing {0} - {1}".format(iconpath, e) + print "WARNING: Failed resizing {0} - {1}".format(iconpath, e) def resize_all_icons(repodirs): """Resize all icons that exceed the max size @@ -496,17 +496,20 @@ def scan_apks(apps, apkcache, repodir, knownapks): iconfile = open(iconpath, 'wb') iconfile.write(apk.read(iconsrc)) iconfile.close() - im = Image.open(iconpath) - dpi = px_to_dpi(im.size[0]) - for density in densities: - if density in thisinfo['icons']: - break - if density == densities[-1] or dpi >= int(density): - thisinfo['icons'][density] = iconfilename - shutil.move(iconpath, - os.path.join(get_icon_dir(repodir, density), iconfilename)) - empty_densities.remove(density) - break + try: + im = Image.open(iconpath) + dpi = px_to_dpi(im.size[0]) + for density in densities: + if density in thisinfo['icons']: + break + if density == densities[-1] or dpi >= int(density): + thisinfo['icons'][density] = iconfilename + shutil.move(iconpath, + os.path.join(get_icon_dir(repodir, density), iconfilename)) + empty_densities.remove(density) + break + except Exception,e: + print "WARNING: Failed reading {0} - {1}".format(iconpath, e) if thisinfo['icons']: thisinfo['icon'] = iconfilename