Add support for bridging spoilers
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"<font color='blue'>{entity_text}</font>")
|
||||
elif entity_type in (MessageEntityHashtag, MessageEntityCashtag, MessageEntityPhone):
|
||||
html.append(f"<font color='blue'>{entity_text}</font>")
|
||||
elif entity_type == MessageEntitySpoiler:
|
||||
html.append(f"<span data-mx-spoiler>{entity_text}</span>")
|
||||
else:
|
||||
skip_entity = True
|
||||
last_offset = relative_offset + (0 if skip_entity else entity.length)
|
||||
|
||||
Reference in New Issue
Block a user