§
    ¨eîi|1  ã                   óŽ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 erddlmZ  G d„ d	e¦  «        Z G d
„ de¦  «        ZdS )z8This module contains two objects to request chats/users.é    )ÚTYPE_CHECKING)ÚChatAdministratorRights)ÚTelegramObject)Úde_json_optional)ÚJSONDict)ÚBotc                   ó†   ‡ — e Zd ZdZdZ	 	 	 	 	 	 dddœdededz  dedz  dedz  d	edz  d
edz  dedz  dedz  fˆ fd„Zˆ xZ	S )ÚKeyboardButtonRequestUsersu  This object defines the criteria used to request a suitable user. The identifier of the
    selected user will be shared with the bot when the corresponding button is pressed. `More
    about requesting users Â» <https://core.telegram.org/bots/features#chat-and-user-selection>`_.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`request_id` is equal.

    .. versionadded:: 20.8
        This class was previously named ``KeyboardButtonRequestUser``.

    Args:
        request_id (:obj:`int`): Signed 32-bit identifier of the request, which will be received
            back in the :class:`telegram.UsersShared` object. Must be unique within the message.
        user_is_bot (:obj:`bool`, optional): Pass :obj:`True` to request a bot, pass :obj:`False`
            to request a regular user. If not specified, no additional restrictions are applied.
        user_is_premium (:obj:`bool`, optional): Pass :obj:`True` to request a premium user, pass
            :obj:`False` to request a non-premium user. If not specified, no additional
            restrictions are applied.
        max_quantity (:obj:`int`, optional): The maximum number of users to be selected;
            :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY` -
            :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MAX_QUANTITY`.
            Defaults to :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY`
            .

            .. versionadded:: 20.8
        request_name (:obj:`bool`, optional): Pass :obj:`True` to request the users' first and last
            name.

            .. versionadded:: 21.1
        request_username (:obj:`bool`, optional): Pass :obj:`True` to request the users' username.

            .. versionadded:: 21.1
        request_photo (:obj:`bool`, optional): Pass :obj:`True` to request the users' photo.

            .. versionadded:: 21.1

    Attributes:
        request_id (:obj:`int`): Identifier of the request.
        user_is_bot (:obj:`bool`): Optional. Pass :obj:`True` to request a bot, pass :obj:`False`
            to request a regular user. If not specified, no additional restrictions are applied.
        user_is_premium (:obj:`bool`): Optional. Pass :obj:`True` to request a premium user, pass
            :obj:`False` to request a non-premium user. If not specified, no additional
            restrictions are applied.
        max_quantity (:obj:`int`): Optional. The maximum number of users to be selected;
            :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY` -
            :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MAX_QUANTITY`.
            Defaults to :tg-const:`telegram.constants.KeyboardButtonRequestUsersLimit.MIN_QUANTITY`
            .

            .. versionadded:: 20.8
        request_name (:obj:`bool`): Optional. Pass :obj:`True` to request the users' first and last
            name.

            .. versionadded:: 21.1
        request_username (:obj:`bool`): Optional. Pass :obj:`True` to request the users' username.

            .. versionadded:: 21.1
        request_photo (:obj:`bool`): Optional. Pass :obj:`True` to request the users' photo.

            .. versionadded:: 21.1

    )Úmax_quantityÚ
request_idÚrequest_nameÚrequest_photoÚrequest_usernameÚuser_is_botÚuser_is_premiumN©Ú
api_kwargsr   r   r   r   r   r   r   r   c                óð   •— t          ¦   «                              |¬¦  «         || _        || _        || _        || _        || _        || _        || _        | j        f| _	        |  
                    ¦   «          d S ©Nr   )ÚsuperÚ__init__r   r   r   r   r   r   r   Ú	_id_attrsÚ_freeze)
Úselfr   r   r   r   r   r   r   r   Ú	__class__s
            €úc/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/telegram/_keyboardbuttonrequest.pyr   z#KeyboardButtonRequestUsers.__init__j   sv   ø€ õ 	‰Œ×Ò JÐÑ/Ô/Ð/à)ˆŒð )4ˆÔØ,;ˆÔØ(4ˆÔØ)5ˆÔØ-=ˆÔØ*7ˆÔàœ/Ð+ˆŒà�Š‰Œˆˆˆó    )NNNNNN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚintÚboolr   r   Ú__classcell__©r   s   @r   r
   r
       sá   ø€ € € € € ð=ð =ð~€Ið $(Ø'+Ø#'Ø$(Ø(,Ø%)ðð '+ðð ð àðð ˜D‘[ðð  ™ð	ð
 ˜D‘jðð ˜T‘kðð  ™+ðð ˜d‘{ðð ˜t‘Oðð ð ð ð ð ð ð ð ð r   r
   c                   óØ   ‡ — e Zd ZdZdZ	 	 	 	 	 	 	 	 	 dddœdedededz  dedz  d	edz  d
edz  dedz  dedz  dedz  dedz  dedz  dedz  fˆ fd„Z	e
ddedddd fˆ fd„¦   «         Zˆ xZS )ÚKeyboardButtonRequestChatuÏ  This object defines the criteria used to request a suitable chat. The identifier of the
    selected user will be shared with the bot when the corresponding button is pressed. `More
    about requesting users Â» <https://core.telegram.org/bots/features#chat-and-user-selection>`_.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`request_id` is equal.

    .. versionadded:: 20.1

    Args:
        request_id (:obj:`int`): Signed 32-bit identifier of the request, which will be received
            back in the :class:`telegram.ChatShared` object. Must be unique within the message.
        chat_is_channel (:obj:`bool`): Pass :obj:`True` to request a channel chat, pass
            :obj:`False` to request a group or a supergroup chat.
        chat_is_forum (:obj:`bool`, optional): Pass :obj:`True` to request a forum supergroup, pass
            :obj:`False` to request a non-forum chat. If not specified, no additional
            restrictions are applied.
        chat_has_username (:obj:`bool`, optional): Pass :obj:`True` to request a supergroup or a
            channel with a username, pass :obj:`False` to request a chat without a username. If
            not specified, no additional restrictions are applied.
        chat_is_created (:obj:`bool`, optional): Pass :obj:`True` to request a chat owned by the
            user. Otherwise, no additional restrictions are applied.
        user_administrator_rights (:class:`ChatAdministratorRights`, optional): Specifies the
            required administrator rights of the user in the chat. If not specified, no additional
            restrictions are applied.
        bot_administrator_rights (:class:`ChatAdministratorRights`, optional): Specifies the
            required administrator rights of the bot in the chat. The rights must be a subset of
            :paramref:`user_administrator_rights`. If not specified, no additional restrictions are
            applied.
        bot_is_member (:obj:`bool`, optional): Pass :obj:`True` to request a chat with the bot
            as a member. Otherwise, no additional restrictions are applied.
        request_title (:obj:`bool`, optional): Pass :obj:`True` to request the chat's title.

            .. versionadded:: 21.1
        request_username (:obj:`bool`, optional): Pass :obj:`True` to request the chat's username.

            .. versionadded:: 21.1
        request_photo (:obj:`bool`, optional): Pass :obj:`True` to request the chat's photo.

            .. versionadded:: 21.1
    Attributes:
        request_id (:obj:`int`): Identifier of the request.
        chat_is_channel (:obj:`bool`): Pass :obj:`True` to request a channel chat, pass
            :obj:`False` to request a group or a supergroup chat.
        chat_is_forum (:obj:`bool`): Optional. Pass :obj:`True` to request a forum supergroup, pass
            :obj:`False` to request a non-forum chat. If not specified, no additional
            restrictions are applied.
        chat_has_username (:obj:`bool`): Optional. Pass :obj:`True` to request a supergroup or a
            channel with a username, pass :obj:`False` to request a chat without a username. If
            not specified, no additional restrictions are applied.
        chat_is_created (:obj:`bool`) Optional. Pass :obj:`True` to request a chat owned by the
            user. Otherwise, no additional restrictions are applied.
        user_administrator_rights (:class:`ChatAdministratorRights`) Optional. Specifies the
            required administrator rights of the user in the chat. If not specified, no additional
            restrictions are applied.
        bot_administrator_rights (:class:`ChatAdministratorRights`) Optional. Specifies the
            required administrator rights of the bot in the chat. The rights must be a subset of
            :attr:`user_administrator_rights`. If not specified, no additional restrictions are
            applied.
        bot_is_member (:obj:`bool`) Optional. Pass :obj:`True` to request a chat with the bot
            as a member. Otherwise, no additional restrictions are applied.
        request_title (:obj:`bool`): Optional. Pass :obj:`True` to request the chat's title.

            .. versionadded:: 21.1
        request_username (:obj:`bool`): Optional. Pass :obj:`True` to request the chat's username.

            .. versionadded:: 21.1
        request_photo (:obj:`bool`): Optional. Pass :obj:`True` to request the chat's photo.

            .. versionadded:: 21.1
    )Úbot_administrator_rightsÚbot_is_memberÚchat_has_usernameÚchat_is_channelÚchat_is_createdÚchat_is_forumr   r   Úrequest_titler   Úuser_administrator_rightsNr   r   r,   r.   r+   r-   r0   r)   r*   r/   r   r   r   c                ó(  •— t          ¦   «                              |¬¦  «         || _        || _        || _        || _        || _        || _        || _        || _	        |	| _
        |
| _        || _        | j        f| _        |                      ¦   «          d S r   )r   r   r   r,   r.   r+   r-   r0   r)   r*   r/   r   r   r   r   )r   r   r,   r.   r+   r-   r0   r)   r*   r/   r   r   r   r   s                €r   r   z"KeyboardButtonRequestChat.__init__Þ   s–   ø€ õ  	‰Œ×Ò JÐÑ/Ô/Ð/à)ˆŒØ%4ˆÔð +8ˆÔØ.?ˆÔØ,;ˆÔØIbˆÔ&ØH`ˆÔ%Ø*7ˆÔØ*7ˆÔØ-=ˆÔØ*7ˆÔàœ/Ð+ˆŒà�Š‰Œˆˆˆr   ÚdataÚbotz
Bot | NoneÚreturnc                 ó$  •— |                       |¦  «        }t          |                     d¦  «        t          |¦  «        |d<   t          |                     d¦  «        t          |¦  «        |d<   t	          ¦   «                              ||¬¦  «        S )z,See :meth:`telegram.TelegramObject.de_json`.r0   r)   )r2   r3   )Ú_parse_datar   Úgetr   r   Úde_json)Úclsr2   r3   r   s      €r   r8   z!KeyboardButtonRequestChat.de_json  sˆ   ø€ ð �Š˜tÑ$Ô$ˆå,<Ø�HŠHÐ0Ñ1Ô1Õ3JÈCñ-
ô -
ˆÐ(Ñ)õ ,<Ø�HŠHÐ/Ñ0Ô0Õ2IÈ3ñ,
ô ,
ˆÐ'Ñ(õ ‰wŒw�Š D¨cˆÑ2Ô2Ð2r   )	NNNNNNNNN)N)r   r   r    r!   r"   r#   r$   r   r   r   Úclassmethodr8   r%   r&   s   @r   r(   r(   ‡   sh  ø€ € € € € ðFð FðP€Ið$ &*Ø)-Ø'+ØDHØCGØ%)Ø%)Ø(,Ø%)ð"ð '+ð"ð "ð "àð"ð ð"ð ˜d‘{ð	"ð
   $™;ð"ð  ™ð"ð $;¸TÑ#Að"ð #:¸DÑ"@ð"ð ˜d‘{ð"ð ˜d‘{ð"ð  ™+ð"ð ˜d‘{ð"ð ˜t‘Oð"ð "ð "ð "ð "ð "ðH ð3ð 3˜8ð 3¨,ð 3ÐB]ð 3ð 3ð 3ð 3ð 3ñ „[ð3ð 3ð 3ð 3ð 3r   r(   N)r!   Útypingr   Ú!telegram._chatadministratorrightsr   Útelegram._telegramobjectr   Útelegram._utils.argumentparsingr   Útelegram._utils.typesr   Útelegramr   r
   r(   © r   r   ú<module>rB      sò   ðð& ?Ð >à  Ð  Ð  Ð  Ð  Ð  à EÐ EÐ EÐ EÐ EÐ EØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø <Ð <Ð <Ð <Ð <Ð <Ø *Ð *Ð *Ð *Ð *Ð *àð ØÐÐÐÐÐðdð dð dð dð d ñ dô dð dðNG3ð G3ð G3ð G3ð G3 ñ G3ô G3ð G3ð G3ð G3r   