diff --git a/pyrogram/methods/messages/get_chat_history.py b/pyrogram/methods/messages/get_chat_history.py index fff96c7c..544b3cb2 100644 --- a/pyrogram/methods/messages/get_chat_history.py +++ b/pyrogram/methods/messages/get_chat_history.py @@ -33,7 +33,8 @@ async def get_chunk( from_message_id: int = 0, from_date: datetime = utils.zero_datetime(), min_id: int = 0, - max_id: int = 0 + max_id: int = 0, + reverse: Optional[bool] = None ): messages = await client.invoke( raw.functions.messages.GetHistory( @@ -48,6 +49,8 @@ async def get_chunk( ), sleep_threshold=60 ) + if reverse: + messages.messages.reverse() return await utils.parse_messages(client, messages, replies=0) @@ -61,7 +64,8 @@ class GetChatHistory: offset_id: int = 0, offset_date: datetime = utils.zero_datetime(), min_id: int = 0, - max_id: int = 0 + max_id: int = 0, + reverse: Optional[bool] = None ) -> Optional[AsyncGenerator["types.Message", None]]: """Get messages from a chat history. @@ -96,6 +100,9 @@ class GetChatHistory: max_id: (``int``, *optional*): The maximum message id. you will not get any message which have id greater than max_id. + reverse (``bool``, *optional*): + Pass True to retrieve the messages in reversed order (from older to most recent). + Returns: ``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects. @@ -118,7 +125,8 @@ class GetChatHistory: from_message_id=offset_id, from_date=offset_date, min_id=min_id, - max_id=max_id + max_id=max_id, + reverse=reverse ) if not messages: