[preview] Better handle exceptions when loading images

This commit is contained in:
lovetox
2020-04-21 18:05:26 +02:00
parent caff6031d7
commit 0c8d3c8827
2 changed files with 16 additions and 3 deletions

View File

@@ -344,7 +344,13 @@ class UrlImagePreviewPlugin(GajimPlugin):
preview.thumbnail = data preview.thumbnail = data
pixbuf = pixbuf_from_data(preview.thumbnail) try:
pixbuf = pixbuf_from_data(preview.thumbnail)
except Exception as err:
log.error('Unable to load: %s, %s',
preview.thumb_path.name,
err)
return
self._update_textview(pixbuf, preview) self._update_textview(pixbuf, preview)
def _download_content(self, preview): def _download_content(self, preview):
@@ -426,7 +432,14 @@ class UrlImagePreviewPlugin(GajimPlugin):
return return
log.info('Thumbnail stored: %s ', preview.thumb_path.name) log.info('Thumbnail stored: %s ', preview.thumb_path.name)
pixbuf = pixbuf_from_data(preview.thumbnail)
try:
pixbuf = pixbuf_from_data(preview.thumbnail)
except Exception as err:
log.error('Unable to load: %s, %s',
preview.thumb_path.name,
err)
return
self._update_textview(pixbuf, preview) self._update_textview(pixbuf, preview)
def _update_textview(self, pixbuf, preview): def _update_textview(self, pixbuf, preview):

View File

@@ -216,6 +216,7 @@ def pixbuf_from_data(data):
loader = GdkPixbuf.PixbufLoader() loader = GdkPixbuf.PixbufLoader()
try: try:
loader.write(data) loader.write(data)
loader.close()
except GLib.Error: except GLib.Error:
# Fallback to Pillow # Fallback to Pillow
input_file = BytesIO(data) input_file = BytesIO(data)
@@ -233,7 +234,6 @@ def pixbuf_from_data(data):
input_file.close() input_file.close()
return pixbuf return pixbuf
loader.close()
return loader.get_pixbuf() return loader.get_pixbuf()