pyrofork: Add thread_id parameter to search_messages and search_messages_count methods

Signed-off-by: wulan17 <wulan17@nusantararom.org>
This commit is contained in:
wulan17 2024-11-21 22:36:35 +07:00
parent 4ced5fbd8b
commit 4e909508e5
No known key found for this signature in database
GPG key ID: 318CD6CD3A6AC0A5
2 changed files with 18 additions and 6 deletions

View file

@ -31,7 +31,8 @@ async def get_chunk(
filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY, filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY,
offset: int = 0, offset: int = 0,
limit: int = 100, limit: int = 100,
from_user: Union[int, str] = None from_user: Union[int, str] = None,
thread_id: int = None
) -> List["types.Message"]: ) -> List["types.Message"]:
r = await client.invoke( r = await client.invoke(
raw.functions.messages.Search( raw.functions.messages.Search(
@ -50,7 +51,8 @@ async def get_chunk(
if from_user if from_user
else None else None
), ),
hash=0 hash=0,
thread_id=thread_id
), ),
sleep_threshold=60 sleep_threshold=60
) )
@ -67,7 +69,8 @@ class SearchMessages:
offset: int = 0, offset: int = 0,
filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY, filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY,
limit: int = 0, limit: int = 0,
from_user: Union[int, str] = None from_user: Union[int, str] = None,
thread_id: int = None
) -> Optional[AsyncGenerator["types.Message", None]]: ) -> Optional[AsyncGenerator["types.Message", None]]:
"""Search for text and media messages inside a specific chat. """Search for text and media messages inside a specific chat.
@ -103,6 +106,9 @@ class SearchMessages:
from_user (``int`` | ``str``, *optional*): from_user (``int`` | ``str``, *optional*):
Unique identifier (int) or username (str) of the target user you want to search for messages from. Unique identifier (int) or username (str) of the target user you want to search for messages from.
thread_id (``int``, *optional*):
Unique identifier of the thread (Message.message_thread_id or Message.reply_top_message_id) to search in.
Returns: Returns:
``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects. ``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects.
@ -136,7 +142,8 @@ class SearchMessages:
filter=filter, filter=filter,
offset=offset, offset=offset,
limit=limit, limit=limit,
from_user=from_user from_user=from_user,
thread_id=thread_id
) )
if not messages: if not messages:

View file

@ -29,7 +29,8 @@ class SearchMessagesCount:
chat_id: Union[int, str], chat_id: Union[int, str],
query: str = "", query: str = "",
filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY, filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY,
from_user: Union[int, str] = None from_user: Union[int, str] = None,
thread_id: int = None
) -> int: ) -> int:
"""Get the count of messages resulting from a search inside a chat. """Get the count of messages resulting from a search inside a chat.
@ -56,6 +57,9 @@ class SearchMessagesCount:
from_user (``int`` | ``str``, *optional*): from_user (``int`` | ``str``, *optional*):
Unique identifier (int) or username (str) of the target user you want to search for messages from. Unique identifier (int) or username (str) of the target user you want to search for messages from.
thread_id (``int``, *optional*):
Unique identifier of the thread (Message.message_thread_id or Message.reply_top_message_id) to search in.
Returns: Returns:
``int``: On success, the messages count is returned. ``int``: On success, the messages count is returned.
""" """
@ -76,7 +80,8 @@ class SearchMessagesCount:
if from_user if from_user
else None else None
), ),
hash=0 hash=0,
top_msg_id=thread_id
) )
) )