[UI] Fix usage of 'with Image.open' in tracker_icons

* Revert changes made to fix 'too many files open' as Image.open does
      not return a file descriptor and generated the following error:

          exceptions.AttributeError: 'NoneType' object has no attribute 'startswith'
This commit is contained in:
Calum Lind 2017-01-12 10:09:02 +00:00
commit 993a0f71af

View file

@ -358,8 +358,7 @@ class TrackerIcons(Component):
if PIL_INSTALLED: if PIL_INSTALLED:
try: try:
with Image.open(icon_name): Image.open(icon_name)
pass
except IOError as ex: except IOError as ex:
raise InvalidIconError(ex) raise InvalidIconError(ex)
else: else:
@ -380,8 +379,7 @@ class TrackerIcons(Component):
:rtype: TrackerIcon :rtype: TrackerIcon
""" """
log.debug('Successfully downloaded from %s: %s', host, icon_name) log.debug('Successfully downloaded from %s: %s', host, icon_name)
icon = TrackerIcon(icon_name) return TrackerIcon(icon_name)
return icon
def on_download_icon_fail(self, f, host, icons=None): def on_download_icon_fail(self, f, host, icons=None):
""" """
@ -436,14 +434,14 @@ class TrackerIcons(Component):
""" """
if icon: if icon:
filename = icon.get_filename() filename = icon.get_filename()
with Image.open(filename) as img: img = Image.open(filename)
if img.size > (16, 16): if img.size > (16, 16):
new_filename = filename.rpartition('.')[0] + '.png' new_filename = filename.rpartition('.')[0] + '.png'
img = img.resize((16, 16), Image.ANTIALIAS) img = img.resize((16, 16), Image.ANTIALIAS)
img.save(new_filename) img.save(new_filename)
if new_filename != filename: if new_filename != filename:
os.remove(filename) os.remove(filename)
icon = TrackerIcon(new_filename) icon = TrackerIcon(new_filename)
return icon return icon
def store_icon(self, icon, host): def store_icon(self, icon, host):