From 38f76c7acf49cfdf952e8ae9f94beb9736ffb39a Mon Sep 17 00:00:00 2001 From: Tulir Asokan <tulir@maunium.net> Date: Sun, 5 Apr 2020 16:16:23 +0300 Subject: [PATCH] Fix Matrix->Facebook images in encrypted rooms --- mautrix_facebook/portal.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mautrix_facebook/portal.py b/mautrix_facebook/portal.py index 2886bf5..b20b335 100644 --- a/mautrix_facebook/portal.py +++ b/mautrix_facebook/portal.py @@ -428,8 +428,15 @@ class Portal(BasePortal): return await sender.send(matrix_to_facebook(message, self.mxid), self.fbid, self.fb_type) async def _handle_matrix_image(self, sender: 'u.User', - message: MediaMessageEventContent) -> str: - data = await self.main_intent.download_media(message.url) + message: MediaMessageEventContent) -> Optional[str]: + if message.file and decrypt_attachment: + data = await self.main_intent.download_media(message.file.url) + data = decrypt_attachment(data, message.file.key.key, + message.file.hashes.get("sha256"), message.file.iv) + elif message.url: + data = await self.main_intent.download_media(message.url) + else: + return None mime = message.info.mimetype or magic.from_buffer(data, mime=True) files = await sender._upload([(message.body, data, mime)]) return await sender._send_files(files, thread_id=self.fbid, thread_type=self.fb_type) -- GitLab