Ë
    †j|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y)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| _	        | j                  «        y ©Nr   )ÚsuperÚ__init__r   r   r   r   r   r   r   Ú	_id_attrsÚ_freeze)
Úselfr   r   r   r   r   r   r   r   Ú	__class__s
            €ú^/var/www/html/datingFans/myenv/lib/python3.12/site-packages/telegram/_keyboardbuttonrequest.pyr   z#KeyboardButtonRequestUsers.__init__j   se   ø€ ô 	‰Ñ 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| _        | j                  «        y 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                 óÔ   •— | j                  |«      }t        |j                  d«      t        |«      |d<   t        |j                  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  sn   ø€ ð �‰˜tÓ$ˆä,<Ø�H‰HÐ0Ó1Ô3JÈCó-
ˆÐ(Ñ)ô ,<Ø�H‰HÐ/Ó0Ô2IÈ3ó,
ˆÐ'Ñ(ô ‰w‰ D¨cˆÓ2Ð2r   )	NNNNNNNNN)N)r   r   r    r!   r"   r#   r$   r   r   r   Úclassmethodr8   r%   r&   s   @r   r(   r(   ‡   s  ø„ ñFðP€Ið$ &*Ø)-Ø'+ØDHØCGØ%)Ø%)Ø(,Ø%)ð"ð '+ò"àð"ð ð"ð ˜d‘{ð	"ð
   $™;ð"ð  ™ð"ð $;¸TÑ#Að"ð #:¸DÑ"@ð"ð ˜d‘{ð"ð ˜d‘{ð"ð  ™+ð"ð ˜d‘{ð"ð ˜t‘Oõ"ðH ñ3˜8ð 3¨,ð 3ÐB]ô 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Ý 3Ý <Ý *áÝôd ô dôNG3 õ G3r   