From f7db298fda1482dddf11f7a670569308309e0e27 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 19 Aug 2023 12:08:12 +0300 Subject: [PATCH] Ignore stories and story replies properly --- mautrix_telegram/portal_util/message_convert.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mautrix_telegram/portal_util/message_convert.py b/mautrix_telegram/portal_util/message_convert.py index c9540723..ec37d957 100644 --- a/mautrix_telegram/portal_util/message_convert.py +++ b/mautrix_telegram/portal_util/message_convert.py @@ -44,9 +44,11 @@ from telethon.tl.types import ( MessageMediaGeoLive, MessageMediaPhoto, MessageMediaPoll, + MessageMediaStory, MessageMediaUnsupported, MessageMediaVenue, MessageMediaWebPage, + MessageReplyStoryHeader, PeerChannel, PeerUser, Photo, @@ -142,6 +144,7 @@ class TelegramMessageConverter: MessageMediaUnsupported: self._convert_unsupported, MessageMediaGame: self._convert_game, MessageMediaContact: self._convert_contact, + MessageMediaStory: self._convert_story, } self._allowed_media = tuple(self._media_converters.keys()) @@ -252,6 +255,8 @@ class TelegramMessageConverter: ) -> None: if not evt.reply_to: return + elif isinstance(evt.reply_to, MessageReplyStoryHeader): + return space = ( evt.peer_id.channel_id if isinstance(evt, Message) and isinstance(evt.peer_id, PeerChannel) @@ -700,6 +705,17 @@ class TelegramMessageConverter: ) return ConvertedMessage(content=content) + @staticmethod + async def _convert_story( + source: au.AbstractUser, evt: Message, client: MautrixTelegramClient, **_ + ) -> ConvertedMessage: + content = await formatter.telegram_to_matrix( + evt, source, client, override_text="Stories are not yet supported" + ) + content.msgtype = MessageType.NOTICE + content["fi.mau.telegram.unsupported"] = True + return ConvertedMessage(content=content) + def _parse_document_attributes(attributes: list[TypeDocumentAttribute]) -> DocAttrs: name, mime_type, is_sticker, sticker_alt, width, height = None, None, False, None, 0, 0