o
    Zzj  ã                   @   st   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r0ddlmZ G d	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                       sš   e Zd ZU dZdZ		dddœdededB dedB dedB f‡ fd	d
„Ze	ddedddd f‡ fdd„ƒZ
ejjZee ed< 	 ejjZee ed< ‡  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                   s>   t ƒ j|d� || _|| _|| _| j| j| jf| _|  ¡  d S )Nr   )ÚsuperÚ__init__r   r   r   Ú	_id_attrsÚ_freeze)Úselfr   r   r   r   ©Ú	__class__© úd/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_inline/inlinequeryresultsbutton.pyr   P   s   z!InlineQueryResultsButton.__init__ÚdataÚbotz
Bot | NoneÚreturnc                    s&   t | d¡t|ƒ|d< tƒ j||d�S )z,See :meth:`telegram.TelegramObject.de_json`.r   )r   r   )r   Úgetr   r   Úde_json)Úclsr   r   r   r   r   r   e   s   z InlineQueryResultsButton.de_jsonÚ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   r   r   r   r
   !   s0   
 ,üúþýüúÿÿr
   N)r$   Útypingr   r   Útelegramr   Útelegram._telegramobjectr   Útelegram._utils.argumentparsingr   Útelegram._utils.typesr   Útelegram._webappinfor   r	   r
   r   r   r   r   Ú<module>   s   