[preview] Better handle exceptions when loading images
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user