
    i                         d Z ddlmZm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dS )zRThis module contains the class that represent a Telegram InlineQueryResultsButton.    )TYPE_CHECKINGFinal)	constants)TelegramObject)de_json_optional)JSONDict)
WebAppInfo)Botc                        e Zd ZU dZdZ	 	 dddde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
ej        j        Zee         ed<   	 ej        j        Zee         ed<    xZS )InlineQueryResultsButtona
  This object represents a button to be shown above inline query results. You **must** use
    exactly one of the optional fields.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`text`, :attr:`web_app` and :attr:`start_parameter` are equal.

    Args:
        text (:obj:`str`): Label text on the button.
        web_app (:class:`telegram.WebAppInfo`, optional): Description of the
            `Web App <https://core.telegram.org/bots/webapps>`_ that will be launched when the
            user presses the button. The Web App will be able to switch back to the inline mode
            using the method
            `switchInlineQuery <https://core.telegram.org/bots/webapps#initializing-mini-apps>`_
            inside the Web App.
        start_parameter (:obj:`str`, optional):  Deep-linking parameter for the
            :guilabel:`/start` message sent to the bot when user presses the switch button.
            :tg-const:`telegram.constants.InlineQueryResultsButtonLimit.MIN_START_PARAMETER_LENGTH`
            -
            :tg-const:`telegram.constants.InlineQueryResultsButtonLimit.MAX_START_PARAMETER_LENGTH`
            characters, only ``A-Z``, ``a-z``, ``0-9``, ``_`` and ``-`` are allowed.

            Example:
                An inline bot that sends YouTube videos can ask the user to connect the bot to
                their YouTube account to adapt search results accordingly. To do this, it displays
                a 'Connect your YouTube account' button above the results, or even before showing
                any. The user presses the button, switches to a private chat with the bot and, in
                doing so, passes a start parameter that instructs the bot to return an OAuth link.
                Once done, the bot can offer a switch_inline button so that the user can easily
                return to the chat where they wanted to use the bot's inline capabilities.

    Attributes:
        text (:obj:`str`): Label text on the button.
        web_app (:class:`telegram.WebAppInfo`): Optional. Description of the
            `Web App <https://core.telegram.org/bots/webapps>`_ that will be launched when the
            user presses the button. The Web App will be able to switch back to the inline mode
            using the method ``web_app_switch_inline_query`` inside the Web App.
        start_parameter (:obj:`str`): Optional. Deep-linking parameter for the
            :tg-const:`telegram.constants.InlineQueryResultsButtonLimit.MIN_START_PARAMETER_LENGTH`
            -
            :tg-const:`telegram.constants.InlineQueryResultsButtonLimit.MAX_START_PARAMETER_LENGTH`
            characters, only ``A-Z``, ``a-z``, ``0-9``, ``_`` and ``-`` are allowed.

    )start_parametertextweb_appN
api_kwargsr   r   r   r   c                    t                                          |           || _        || _        || _        | j        | j        | j        f| _        |                                  d S )Nr   )super__init__r   r   r   	_id_attrs_freeze)selfr   r   r   r   	__class__s        i/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/telegram/_inline/inlinequeryresultsbutton.pyr   z!InlineQueryResultsButton.__init__P   s`     	J/// 	 +2+:)T\43GH    databotz
Bot | Nonereturnc                     t          |                    d          t          |          |d<   t                                          ||          S )z,See :meth:`telegram.TelegramObject.de_json`.r   )r   r   )r   getr	   r   de_json)clsr   r   r   s      r   r    z InlineQueryResultsButton.de_jsone   s@     +488I+>+>
CPPYwwDc222r   MIN_START_PARAMETER_LENGTHMAX_START_PARAMETER_LENGTH)NN)N)__name__
__module____qualname____doc__	__slots__strr	   r   r   classmethodr    r   InlineQueryResultsButtonLimitr"   r   int__annotations__r#   __classcell__)r   s   @r   r   r   !   s.        * *X 7I
 &*&*	 '+   d" t	 tO     * 3 38 3, 3B\ 3 3 3 3 3 [3 	/J c
    _/J c
    _^^^r   r   N)r'   typingr   r   telegramr   telegram._telegramobjectr   telegram._utils.argumentparsingr   telegram._utils.typesr   telegram._webappinfor	   r
   r    r   r   <module>r6      s   & Y X ' ' ' ' ' ' ' '       3 3 3 3 3 3 < < < < < < * * * * * * + + + + + + S_ S_ S_ S_ S_~ S_ S_ S_ S_ S_r   