Added message_thread_id to url of chats with topics for message.get_url() (#1451)

This commit is contained in:
Robotvasya 2024-04-23 18:20:10 +05:00
parent f1c9fc50f0
commit 8b64a6f288
2 changed files with 12 additions and 2 deletions

1
CHANGES/1451.feature.rst Normal file
View file

@ -0,0 +1 @@
Added **message_thread_id** parameter to **message.get_url()**.

View file

@ -3828,13 +3828,16 @@ class Message(MaybeInaccessibleMessage):
**kwargs,
).as_(self._bot)
def get_url(self, force_private: bool = False) -> Optional[str]:
def get_url(
self, force_private: bool = False, include_thread_id: bool = False
) -> Optional[str]:
"""
Returns message URL. Cannot be used in private (one-to-one) chats.
If chat has a username, returns URL like https://t.me/username/message_id
Otherwise (or if {force_private} flag is set), returns https://t.me/c/shifted_chat_id/message_id
:param force_private: if set, a private URL is returned even for a public chat
:param include_thread_id: if set, adds chat thread id to URL and returns like https://t.me/username/thread_id/message_id
:return: string with full message URL
"""
if self.chat.type in ("private", "group"):
@ -3846,7 +3849,13 @@ class Message(MaybeInaccessibleMessage):
else self.chat.username
)
return f"https://t.me/{chat_value}/{self.message_id}"
message_id_value = (
f"{self.message_thread_id}/{self.message_id}"
if include_thread_id and self.message_thread_id and self.is_topic_message
else f"{self.message_id}"
)
return f"https://t.me/{chat_value}/{message_id_value}"
def react(
self,