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"
\n",
+ prefix_text="Inline image: ")
await intent.set_typing(self.mxid, is_typing=False)
- inline_img = f"
\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,