[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
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)
def _download_content(self, preview):
@@ -426,7 +432,14 @@ class UrlImagePreviewPlugin(GajimPlugin):
return
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)
def _update_textview(self, pixbuf, preview):

View File

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