From 150321a4d7448d10f2037837e3b3adb29076e8f2 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 8 Mar 2018 18:01:58 +0200 Subject: [PATCH] Fix replies/forwards to/of images --- mautrix_telegram/formatter/from_telegram.py | 8 +++++++- mautrix_telegram/portal.py | 13 ++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/mautrix_telegram/formatter/from_telegram.py b/mautrix_telegram/formatter/from_telegram.py index 7ed974e4..6dfbb1fe 100644 --- a/mautrix_telegram/formatter/from_telegram.py +++ b/mautrix_telegram/formatter/from_telegram.py @@ -120,11 +120,17 @@ async def _add_reply_header(source, text, html, evt, relates_to, main_intent, is return text_with_quote, html -async def telegram_to_matrix(evt, source, main_intent=None, is_edit=False): +async def telegram_to_matrix(evt, source, main_intent=None, is_edit=False, prefix_text=None, + prefix_html=None): text = add_surrogates(evt.message) html = _telegram_entities_to_matrix_catch(text, evt.entities) if evt.entities else None relates_to = {} + if prefix_html: + html = prefix_html + (html or escape(text)) + if prefix_text: + text = prefix_text + text + if evt.fwd_from: text, html = await _add_forward_header(source, text, html, evt.fwd_from.from_id) diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index 7603704b..b6bd56e0 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -834,19 +834,18 @@ class Portal: if self.mxid: await user.intent.set_typing(self.mxid, is_typing=True) - async def handle_telegram_photo(self, source, intent, evt, relates_to=None): + async def handle_telegram_photo(self, source: u.User, intent, evt: Message, relates_to=None): largest_size = self._get_largest_photo_size(evt.media.photo) file = await util.transfer_file_to_matrix(self.db, source.client, intent, largest_size.location) if not file: return None - if config["bridge.inline_images"] and evt.message: - text, html, relates_to = await formatter.telegram_to_matrix(evt, source, - self.main_intent) + if config["bridge.inline_images"] and (evt.message or evt.fwd_from or evt.reply_to_msg_id): + text, html, relates_to = await formatter.telegram_to_matrix( + evt, source, self.main_intent, + prefix_html=f"Inline Telegram photo
\n", + prefix_text="Inline image: ") await intent.set_typing(self.mxid, is_typing=False) - inline_img = f"Inline Telegram photo
\n" - html = inline_img + (html or escape(text)) - text = f"Inline image: {text}" return await intent.send_text(self.mxid, text, html=html, relates_to=relates_to) info = { "h": largest_size.h,