B
    fd
                 @   s>   d dl mZmZmZ d dlZd dlmZmZ G dd dZdS )    )UnionOptionalAsyncGeneratorN)typesrawc               @   s4   e Zd Zddeeef eeeed  dddZdS )	GetDiscussionRepliesr   zpyrogram.Client)ztypes.MessageN)selfchat_id
message_idlimitreturnc             C  s   d}|p
d}t d|}x| tjjj| |I dH |dd||dddd	I dH }dd |jD }dd |jD }|j}	|	s~dS x>|	D ]6}
t	j
j| |
||dd	I dH V  |d
7 }||krdS qW qW dS )a  Get the message replies of a discussion thread.

        .. include:: /_includes/usable-by/users.rst

        Parameters:
            chat_id (``int`` | ``str``):
                Unique identifier (int) or username (str) of the target chat.

            message_id (``int``):
                Message id.

            limit (``int``, *optional*):
                Limits the number of messages to be retrieved.
                By default, no limit is applied and all messages are returned.

        Example:
            .. code-block:: python

                async for message in app.get_discussion_replies(chat_id, message_id):
                    print(message)
        r   id   N)	ZpeerZmsg_idZ	offset_idZoffset_dateZ
add_offsetr   Zmax_idZmin_idhashc             S   s   i | ]}||j qS  )id).0ur   r   T/tmp/pip-unpacked-wheel-rcokkf2l/pyrogram/methods/messages/get_discussion_replies.py
<dictcomp>I   s    z?GetDiscussionReplies.get_discussion_replies.<locals>.<dictcomp>c             S   s   i | ]}||j qS r   )r   )r   cr   r   r   r   J   s    )Zreplies   )minZinvoker   Z	functionsmessagesZ
GetRepliesZresolve_peeruserschatsr   Message_parse)r   r	   r
   r   currenttotalrr   r   r   messager   r   r   get_discussion_replies   s2    

z+GetDiscussionReplies.get_discussion_repliesN)r   )	__name__
__module____qualname__r   intstrr   r   r!   r   r   r   r   r      s   r   )typingr   r   r   Zpyrogramr   r   r   r   r   r   r   <module>   s   