diff --git a/mautrix_telegram/formatter/from_matrix/parser.py b/mautrix_telegram/formatter/from_matrix/parser.py
index 0b99dbd4..57b10812 100644
--- a/mautrix_telegram/formatter/from_matrix/parser.py
+++ b/mautrix_telegram/formatter/from_matrix/parser.py
@@ -95,5 +95,8 @@ class MatrixParser(BaseMatrixParser[TelegramMessage]):
async def color_to_fstring(self, msg: TelegramMessage, color: str) -> TelegramMessage:
return msg
- async def spoiler_to_fstring(self, msg: TelegramMessage, spoiler: str) -> TelegramMessage:
+ async def spoiler_to_fstring(self, msg: TelegramMessage, reason: str) -> TelegramMessage:
+ msg = msg.format(self.e.SPOILER)
+ if reason:
+ msg = msg.prepend(f"{reason}: ")
return msg
diff --git a/mautrix_telegram/formatter/from_matrix/telegram_message.py b/mautrix_telegram/formatter/from_matrix/telegram_message.py
index 938e7cc0..7e4f2d3c 100644
--- a/mautrix_telegram/formatter/from_matrix/telegram_message.py
+++ b/mautrix_telegram/formatter/from_matrix/telegram_message.py
@@ -29,6 +29,7 @@ from telethon.tl.types import (
MessageEntityMention as Mention,
MessageEntityMentionName as MentionName,
MessageEntityPre as Pre,
+ MessageEntitySpoiler as Spoiler,
MessageEntityStrike as Strike,
MessageEntityTextUrl as TextURL,
MessageEntityUnderline as Underline,
@@ -55,6 +56,7 @@ class TelegramEntityType(Enum):
MENTION = Mention
MENTION_NAME = InputMentionName
COMMAND = Command
+ SPOILER = Spoiler
USER_MENTION = 1
ROOM_MENTION = 2
diff --git a/mautrix_telegram/formatter/from_telegram.py b/mautrix_telegram/formatter/from_telegram.py
index e650f3c7..b2650986 100644
--- a/mautrix_telegram/formatter/from_telegram.py
+++ b/mautrix_telegram/formatter/from_telegram.py
@@ -35,6 +35,7 @@ from telethon.tl.types import (
MessageEntityMentionName,
MessageEntityPhone,
MessageEntityPre,
+ MessageEntitySpoiler,
MessageEntityStrike,
MessageEntityTextUrl,
MessageEntityUnderline,
@@ -293,6 +294,8 @@ async def _telegram_entities_to_matrix(
html.append(f"{entity_text}")
elif entity_type in (MessageEntityHashtag, MessageEntityCashtag, MessageEntityPhone):
html.append(f"{entity_text}")
+ elif entity_type == MessageEntitySpoiler:
+ html.append(f"{entity_text}")
else:
skip_entity = True
last_offset = relative_offset + (0 if skip_entity else entity.length)
diff --git a/requirements.txt b/requirements.txt
index 7937aa18..9ac5c726 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,8 +5,8 @@ aiohttp>=3,<4
yarl>=1,<2
mautrix>=0.14.0,<0.15
#telethon>=1.24,<1.25
-# Fork to make session storage async
-tulir-telethon==1.25.0a1
+# Fork to make session storage async and update to layer 136
+tulir-telethon==1.25.0a2
asyncpg>=0.20,<0.26
mako>=1,<2
setuptools