From dd270b862efcd13ba80766f1e6477c7d984df0e4 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Mon, 24 Sep 2018 01:25:51 +0300 Subject: [PATCH] Fix handling capitalized file extensions. Fixes #156 --- mautrix_telegram/portal.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index 5a8f2e31..487b0ec1 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -697,13 +697,18 @@ class Portal: @staticmethod def _get_file_meta(body: str, mime: str) -> str: try: - current_extension = body[body.rindex("."):] + current_extension = body[body.rindex("."):].lower() + body = body[:body.rindex(".")] if mimetypes.types_map[current_extension] == mime: - return body + return body + current_extension except (ValueError, KeyError): pass + ext_override = { + "image/jpeg": ".jpg" + } if mime: - return f"matrix_upload{mimetypes.guess_extension(mime)}" + ext = ext_override.get(mime, mimetypes.guess_extension(mime)) + return f"matrix_upload{ext}" else: return "" @@ -901,12 +906,11 @@ class Portal: w, h = info["w"], info["h"] file_name = self._get_file_meta(message["mxtg_filename"], mime) - attributes = [DocumentAttributeFilename(file_name=file_name)] if w and h: attributes.append(DocumentAttributeImageSize(w, h)) - caption = message["body"] if message["body"] != file_name else None + caption = message["body"] if message["body"].lower() != file_name.lower() else None media = await client.upload_file_direct(file, mime, attributes, file_name) lock = self.require_send_lock(sender_id)