From 46d8128931abd747a2f8e5c22511b1d780a8bfa7 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 27 Jan 2018 22:01:44 +0200 Subject: [PATCH] Try not to crash if WebP is not supported --- mautrix_telegram/portal.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index 970611c4..4b6e1184 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -304,18 +304,20 @@ class Portal: @staticmethod def convert_webp(file, to="png"): - image = Image.open(BytesIO(file)).convert("RGBA") - file = BytesIO() - image.save(file, to) - return file.getvalue() + try: + image = Image.open(BytesIO(file)).convert("RGBA") + new_file = BytesIO() + image.save(new_file, to) + return f"image/{to}", new_file.getvalue() + except: + return "image/webp", file def handle_telegram_document(self, source, sender, media): file = source.download_file(media.document) mime_type = magic.from_buffer(file, mime=True) dont_change_mime = False if mime_type == "image/webp": - file = self.convert_webp(file, to="png") - mime_type = "image/png" + mime_type, file = self.convert_webp(file, to="png") dont_change_mime = True uploaded = sender.intent.upload_file(file, mime_type) name = media.caption