o
    -˜Žj  ã                   @   s:   d dl Z d dlmZ d dlmZmZmZ G dd„ dƒZdS )é    N)ÚFilter)ÚListÚOptionalÚUnionc                   @   s¬   e Zd Zdejjjdddddfdddeeee	f e
eee	f  f de	dee dd	d
ee dedeeee	f e
eee	f  f deee
e f dee	e
e	 f fdd„ZdS )ÚAskNTÚselfzpyrogram.ClientÚchat_idÚtextÚfiltersÚlistener_typezpyrogram.enums.ListenerTypesÚtimeoutÚunallowed_click_alertÚuser_idÚ
message_idÚinline_message_idc
              
   Ï   sx   �d}|r%t |tƒr%t |tƒr|d n|}| j||g|
¢R i |¤ŽI dH }| j||||||||	d�I dH }|r:||_|S )u6  Send a message then listen for a message, callback query, etc.

        Message:

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

        CallbackQuery:

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

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

            text (``str``):
                Text of the message to be sent.

            user_id (``int`` | ``str`` | Iterable of ``int`` | Iterable of ``str``, *optional*):
                The user ID to listen for.

            filters (:obj:`~pyrogram.filters`, *optional*):
                A filter to check the incoming message against.

            listener_type (:obj:`~pyrogram.enums.ListenerTypes`, *optional*):
                The type of listener to listen for.
                Default to Message.

            timeout (``int``, *optional*):
                The maximum amount of time to wait for a message.

            unallowed_click_alert (``bool``, *optional*):
                Whether to alert the user if they click a button that doesnâ€™t match the filters.
                Default to True.

            inline_message_id (``str``, *optional*):
                The inline message ID to listen for.

        Returns:
            :obj:`~pyrogram.types.Message` | :obj:`~pyrogram.types.CallbackQuery`: On success, a message/callbackquery is returned.

        Example:
            .. code-block:: python

                await app.ask(chat_id, "Tell me your name:")
        Nr   )r
   r   r   r   r   r   r   r   )Ú
isinstanceÚstrÚlistÚsend_messageÚlistenÚsent_message)r   r   r	   r
   r   r   r   r   r   r   ÚargsÚkwargsr   Úchat_to_askÚresponse© r   úY/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/pyrogram/methods/pyromod/ask.pyÚask   s$   €; ø
zAsk.ask)Ú__name__Ú
__module__Ú__qualname__ÚpyrogramÚenumsÚListenerTypesÚMESSAGEr   Úintr   r   r   r   Úboolr   r   r   r   r   r      s:    öÿþýüûúùø	÷
ör   )r!   Úpyrogram.filtersr   Útypingr   r   r   r   r   r   r   r   Ú<module>   s   