Ë
    †jñ  ã            	       óð   — d Z dZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZ erddlmZmZ 	 dd	ed
ededz  defd„Zdeez  dedefd„Zddeez  ded
edefd„Zdddedz  fd„Z	 ddededz  dedefd„Zy)zÎThis module contains convenience helper functions.

.. versionchanged:: 20.0
   Previously, the contents of this module were available through the (no longer existing)
   module ``telegram.utils.helpers``.
)Úcreate_deep_linked_urlÚeffective_message_typeÚescape_markdownÚmention_htmlÚmention_markdowné    N©Úescape)ÚTYPE_CHECKING)ÚMarkdownVersion)ÚMessageLimitÚMessageType©ÚMessageÚUpdateÚtextÚversionÚentity_typeÚreturnc                 óÔ   — t        |«      dk(  rd}n*t        |«      dk(  r|dv rd}n|dv rd}nd}nt        d	«      ‚t        j                  d
t        j                  |«      › d�d| «      S )a²  Helper function to escape telegram markup symbols.

    .. versionchanged:: 20.3
        Custom emoji entity escaping is now supported.

    Args:
        text (:obj:`str`): The text.
        version (:obj:`int` | :obj:`str`): Use to specify the version of telegrams Markdown.
            Either ``1`` or ``2``. Defaults to ``1``.
        entity_type (:obj:`str`, optional): For the entity types
            :tg-const:`telegram.MessageEntity.PRE`, :tg-const:`telegram.MessageEntity.CODE` and
            the link part of :tg-const:`telegram.MessageEntity.TEXT_LINK` and
            :tg-const:`telegram.MessageEntity.CUSTOM_EMOJI`, only certain characters need to be
            escaped in :tg-const:`telegram.constants.ParseMode.MARKDOWN_V2`. See the `official API
            documentation <https://core.telegram.org/bots/api#formatting-options>`_ for details.
            Only valid in combination with ``version=2``, will be ignored else.
    é   z_*`[é   )ÚpreÚcodez\`)Ú	text_linkÚcustom_emojiz\)z\_*[]()~`>#+-=|{}.!z'Markdown version must be either 1 or 2!z([z])z\\\1)ÚintÚ
ValueErrorÚreÚsubr	   )r   r   r   Úescape_charss       úO/var/www/html/datingFans/myenv/lib/python3.12/site-packages/telegram/helpers.pyr   r   -   ss   € ô( ˆ7ƒ|�qÒØ‰Ü	ˆW‹˜Ò	Ø˜/Ñ)Ø ‰LØÐ9Ñ9Ø ‰Là1‰LäÐBÓCÐCä�6‰6�B”r—y‘y Ó.Ð/¨rÐ2°G¸TÓBÐBó    Úuser_idÚnamec                 ó&   — d| › dt        |«      › d�S )a  
    Helper function to create a user mention as HTML tag.

    Args:
        user_id (:obj:`int`): The user's id which you want to mention.
        name (:obj:`str`): The name the mention is showing.

    Returns:
        :obj:`str`: The inline mention for the user as HTML.
    z<a href="tg://user?id=z">z</a>r   )r#   r$   s     r!   r   r   P   s   € ð $ G 9¨B¬v°d«|¨n¸DÐAÐAr"   c                 óP   — d| › �}|dk(  r	d|› d|› d�S dt        ||¬«      › d|› d�S )a·  
    Helper function to create a user mention in Markdown syntax.

    Args:
        user_id (:obj:`int`): The user's id which you want to mention.
        name (:obj:`str`): The name the mention is showing.
        version (:obj:`int` | :obj:`str`): Use to specify the version of Telegram's Markdown.
            Either ``1`` or ``2``. Defaults to ``1``.

    Returns:
        :obj:`str`: The inline mention for the user as Markdown.
    ztg://user?id=r   ú[z](ú))r   )r   )r#   r$   r   Útg_links       r!   r   r   ^   sI   € ð ˜g˜YÐ'€GØ�!‚|Ø�4�&˜˜7˜) 1Ð%Ð%ØŒ˜t¨WÔ5Ð6°b¸¸	ÀÐCÐCr"   ÚentityzMessage | Updatec                 óÖ   — ddl m}m} t        | |«      r| }n>t        | |«      r| j                  sy| j                  }nt        dt        | «      › d�«      ‚t        D ]  }||   sŒ	|c S  y)aÏ  
    Extracts the type of message as a string identifier from a :class:`telegram.Message` or a
    :class:`telegram.Update`.

    Args:
        entity (:class:`telegram.Update` | :class:`telegram.Message`): The ``update`` or
            ``message`` to extract from.

    Returns:
        :obj:`str` | :obj:`None`: One of :class:`telegram.constants.MessageType` if the entity
        contains a message that matches one of those types. :obj:`None` otherwise.

    r   r   Nz/The entity is neither Message nor Update (got: r(   )Útelegramr   r   Ú
isinstanceÚeffective_messageÚ	TypeErrorÚtyper   )r*   r   r   ÚmessageÚmessage_types        r!   r   r   q   su   € ÷ô
 �&˜'Ô"Ø‰Ü	�F˜FÔ	#Ø×'Ò'ØØ×*Ñ*‰äÐIÌ$ÈvË,ÈÐWXÐYÓZÐZä#ò  ˆØ�<Ó ØÒð ð r"   Úbot_usernameÚpayloadÚgroupc                 ó  — | �t        | «      dk  rt        d«      ‚d| › �}|s|S t        |«      t        j                  kD  rt        dt        j                  › d�«      ‚t	        j
                  d|«      st        d«      ‚|rdnd	}|› d
|› d|› �S )ab  
    Creates a deep-linked URL for this :paramref:`~create_deep_linked_url.bot_username` with the
    specified :paramref:`~create_deep_linked_url.payload`. See
    https://core.telegram.org/bots/features#deep-linking to learn more.

    The :paramref:`~create_deep_linked_url.payload` may consist of the following characters:
    ``A-Z, a-z, 0-9, _, -``

    Note:
        Works well in conjunction with
        ``CommandHandler("start", callback, filters=filters.Regex('payload'))``

    Examples:
        * ``create_deep_linked_url(bot.get_me().username, "some-params")``
        * :any:`Deep Linking <examples.deeplinking>`

    Args:
        bot_username (:obj:`str`): The username to link to.
        payload (:obj:`str`, optional): Parameters to encode in the created URL.
        group (:obj:`bool`, optional): If :obj:`True` the user is prompted to select a group to
            add the bot to. If :obj:`False`, opens a one-on-one conversation with the bot.
            Defaults to :obj:`False`.

    Returns:
        :obj:`str`: An URL to start the bot with specific parameters.

    Raises:
        :exc:`ValueError`: If the length of the :paramref:`payload` exceeds         :tg-const:`telegram.constants.MessageLimit.DEEP_LINK_LENGTH` characters,
            contains invalid characters, or if the :paramref:`bot_username` is less than 4
            characters.
    é   z&You must provide a valid bot_username.zhttps://t.me/z)The deep-linking payload must not exceed z characters.z^[A-Za-z0-9_-]+$zVOnly the following characters are allowed for deep-linked URLs: A-Z, a-z, 0-9, _ and -Ú
startgroupÚstartú?ú=)Úlenr   r   ÚDEEP_LINK_LENGTHr   Úmatch)r3   r4   r5   Úbase_urlÚkeys        r!   r   r   •   s¯   € ðF Ðœs <Ó0°AÒ5ÜÐAÓBÐBà˜|˜nÐ-€HÙØˆä
ˆ7ƒ|”l×3Ñ3Ò3ÜØ7¼×8UÑ8UÐ7VÐVbÐcó
ð 	
ô �8‰8Ð'¨Ô1Üð+ó
ð 	
ñ
  ‰, W€CàˆZ�q˜˜˜Q˜w˜iÐ(Ð(r"   )r   N)r   )NF)Ú__doc__Ú__all__r   Úhtmlr	   Útypingr
   Útelegram._utils.typesr   Útelegram.constantsr   r   r,   r   r   Ústrr   r   r   r   r   Úboolr   © r"   r!   ú<module>rJ      sô   ðñ&ð€ó 
Ý Ý  å 1ß 8áß(ð HLñ CØ
ð CØ'ð CØ:=À¹*ð Càó CðFB˜# ™)ð B¨3ð B°3ó BñD˜c C™ið D¨sð D¸_ð DÐUXó Dð&!Ð#5ð !¸#À¹*ó !ðJ BGñ7)Øð7)Ø # d¡
ð7)Ø:>ð7)àô7)r"   