§
    ªeîia  ã                   óö   — d Z ddlmZ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 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )zEThis module contains objects that represents a Telegram ReactionType.é    )ÚTYPE_CHECKINGÚFinalÚLiteral)Ú	constants)ÚTelegramObject)Úenum)Úde_json_optional)ÚJSONDict)ÚBotc                   ó2  ‡ — e Zd ZU dZdZej        j        Zeej                 e	d<   	 ej        j
        Z
eej                 e	d<   	 ej        j        Zeej                 e	d<   	 ddœded	         ej        z  d
edz  fˆ fd„Zeddedddd fˆ fd„¦   «         Zˆ xZS )ÚReactionTypeaÄ  Base class for Telegram ReactionType Objects.
    There exist :class:`telegram.ReactionTypeEmoji`, :class:`telegram.ReactionTypeCustomEmoji`
    and :class:`telegram.ReactionTypePaid`.

    .. versionadded:: 20.8
    .. versionchanged:: 21.5

        Added paid reaction.

    Args:
        type (:obj:`str`): Type of the reaction. Can be
            :attr:`~telegram.ReactionType.EMOJI`, :attr:`~telegram.ReactionType.CUSTOM_EMOJI` or
            :attr:`~telegram.ReactionType.PAID`.
    Attributes:
        type (:obj:`str`): Type of the reaction. Can be
            :attr:`~telegram.ReactionType.EMOJI`, :attr:`~telegram.ReactionType.CUSTOM_EMOJI` or
            :attr:`~telegram.ReactionType.PAID`.

    )ÚtypeÚEMOJIÚCUSTOM_EMOJIÚPAIDN©Ú
api_kwargsr   )ÚemojiÚcustom_emojiÚpaidr   c                ó¾   •— t          ¦   «                              |¬¦  «         t          j        t          j        ||¦  «        | _        |                      ¦   «          d S ©Nr   )ÚsuperÚ__init__r   Ú
get_memberr   r   r   Ú_freeze)Úselfr   r   Ú	__class__s      €úV/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/telegram/_reaction.pyr   zReactionType.__init__C   sI   ø€ õ 	‰Œ×Ò JÐÑ/Ô/Ð/åœ­Ô)?ÀÀtÑLÔLˆŒ	à�Š‰Œˆˆˆó    ÚdataÚbotú
Bot | NoneÚreturnc                 ó^  •— |                       |¦  «        }| j        t          | j        t          | j        t          i}| t          u rF|                     d¦  «        |v r/|| 	                    d¦  «                  
                    ||¦  «        S t          ¦   «          
                    ||¬¦  «        S ©z,See :meth:`telegram.TelegramObject.de_json`.r   )r!   r"   )Ú_parse_datar   ÚReactionTypeEmojir   ÚReactionTypeCustomEmojir   ÚReactionTypePaidr   ÚgetÚpopÚde_jsonr   )Úclsr!   r"   Ú_class_mappingr   s       €r   r-   zReactionType.de_jsonO   sœ   ø€ ð �Š˜tÑ$Ô$ˆð ŒIÕ(ØÔÕ5ØŒHÕ&ð9
ˆð •,ÐÐ 4§8¢8¨FÑ#3Ô#3°~Ð#EÐ#EØ! $§(¢(¨6Ñ"2Ô"2Ô3×;Ò;¸DÀ#ÑFÔFÐFå‰wŒw�Š D¨cˆÑ2Ô2Ð2r    ©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r   r   Ú__annotations__r   r   r   r
   r   Úclassmethodr-   Ú__classcell__©r   s   @r   r   r   "   s,  ø€ € € € € € ðð ð( €Ià+4Ô+AÔ+G€Eˆ5�Ô'Ô(ÐGÐGÑGØ8Ø2;Ô2HÔ2U€L�%˜	Ô.Ô/ÐUÐUÑUØ?Ø*3Ô*@Ô*E€Dˆ%�	Ô&Ô
'ÐEÐEÑEðð '+ð	
ð 
ð 
àÐ5Ô6¸Ô9OÑOð
ð ˜t‘Oð	
ð 
ð 
ð 
ð 
ð 
ð ð3ð 3˜8ð 3¨,ð 3À.ð 3ð 3ð 3ð 3ð 3ñ „[ð3ð 3ð 3ð 3ð 3r    r   c                   ó<   ‡ — e Zd ZdZdZddœdededz  fˆ fd„Zˆ xZS )r(   aP  
    Represents a reaction with a normal emoji.

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

    .. versionadded:: 20.8

    Args:
        emoji (:obj:`str`): Reaction emoji. It can be one of
            :const:`telegram.constants.ReactionEmoji`.

    Attributes:
        type (:obj:`str`): Type of the reaction,
            always :tg-const:`telegram.ReactionType.EMOJI`.
        emoji (:obj:`str`): Reaction emoji. It can be one of
        :const:`telegram.constants.ReactionEmoji`.
    )r   Nr   r   r   c                óä   •— t          ¦   «                              t          j        |¬¦  «         |                      ¦   «         5  || _        | j        f| _        d d d ¦  «         d S # 1 swxY w Y   d S ©N)r   r   )r   r   r   r   Ú	_unfrozenr   Ú	_id_attrs)r   r   r   r   s      €r   r   zReactionTypeEmoji.__init__v   s«   ø€ õ 	‰Œ×Ò�lÔ0¸ZÐÑHÔHÐHà�^Š^ÑÔð 	+ð 	+Ø#ˆDŒJØ"œj˜]ˆDŒNð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ó   ÁA%Á%A)Á,A)©	r1   r2   r3   r4   r5   Ústrr
   r   r8   r9   s   @r   r(   r(   `   ss   ø€ € € € € ðð ð& €Ið '+ð	
+ð 
+ð 
+àð
+ð ˜t‘Oð	
+ð 
+ð 
+ð 
+ð 
+ð 
+ð 
+ð 
+ð 
+ð 
+r    r(   c                   ó<   ‡ — e Zd ZdZdZddœdededz  fˆ fd„Zˆ xZS )r)   aü  
    Represents a reaction with a custom emoji.

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

    .. versionadded:: 20.8

    Args:
        custom_emoji_id (:obj:`str`): Custom emoji identifier.

    Attributes:
        type (:obj:`str`): Type of the reaction,
            always :tg-const:`telegram.ReactionType.CUSTOM_EMOJI`.
        custom_emoji_id (:obj:`str`): Custom emoji identifier.

    )Úcustom_emoji_idNr   rC   r   c                óä   •— t          ¦   «                              t          j        |¬¦  «         |                      ¦   «         5  || _        | j        f| _        d d d ¦  «         d S # 1 swxY w Y   d S r<   )r   r   r   r   r=   rC   r>   )r   rC   r   r   s      €r   r   z ReactionTypeCustomEmoji.__init__˜   s®   ø€ õ 	‰Œ×Ò�lÔ7ÀJÐÑOÔOÐOà�^Š^ÑÔð 	5ð 	5Ø(7ˆDÔ Ø"Ô2Ð4ˆDŒNð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5r?   r@   r9   s   @r   r)   r)   ƒ   ss   ø€ € € € € ðð ð$ %€Ið '+ð	
5ð 
5ð 
5àð
5ð ˜t‘Oð	
5ð 
5ð 
5ð 
5ð 
5ð 
5ð 
5ð 
5ð 
5ð 
5r    r)   c                   ó8   ‡ — e Zd ZdZdZddœdedz  fˆ fd„Zˆ xZS )r*   z¸
    The reaction is paid.

    .. versionadded:: 21.5

    Attributes:
        type (:obj:`str`): Type of the reaction,
            always :tg-const:`telegram.ReactionType.PAID`.
    © Nr   r   c                óŠ   •— t          ¦   «                              t          j        |¬¦  «         |                      ¦   «          d S r<   )r   r   r   r   r   )r   r   r   s     €r   r   zReactionTypePaid.__init__²   s4   ø€ Ý‰Œ×Ò�lÔ/¸JÐÑGÔGÐGØ�Š‰Œˆˆˆr    )r1   r2   r3   r4   r5   r
   r   r8   r9   s   @r   r*   r*   ¥   sf   ø€ € € € € ðð ð €Ià8<ð ð ð  h°¡oð ð ð ð ð ð ð ð ð ð r    r*   c                   ój   ‡ — e Zd ZdZdZddœdedededz  fˆ fd„Ze	dd	ed
ddd fˆ fd„¦   «         Z
ˆ xZS )ÚReactionCountai  This class represents a reaction added to a message along with the number of times it was
    added.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if the :attr:`type` and :attr:`total_count` is equal.

    .. versionadded:: 20.8

    Args:
        type (:class:`telegram.ReactionType`): Type of the reaction.
        total_count (:obj:`int`): Number of times the reaction was added.

    Attributes:
        type (:class:`telegram.ReactionType`): Type of the reaction.
        total_count (:obj:`int`): Number of times the reaction was added.
    )Útotal_countr   Nr   r   rJ   r   c                ó¶   •— t          ¦   «                              |¬¦  «         || _        || _        | j        | j        f| _        |                      ¦   «          d S r   )r   r   r   rJ   r>   r   )r   r   rJ   r   r   s       €r   r   zReactionCount.__init__Î   sX   ø€ õ 	‰Œ×Ò JÐÑ/Ô/Ð/à"&ˆŒ	Ø +ˆÔð ŒIØÔð
ˆŒð 	�Š‰Œˆˆˆr    r!   r"   r#   r$   c                 óÌ   •— |                       |¦  «        }t          |                     d¦  «        t          |¦  «        |d<   t	          ¦   «                              ||¬¦  «        S r&   )r'   r	   r+   r   r   r-   )r.   r!   r"   r   s      €r   r-   zReactionCount.de_jsonà   sQ   ø€ ð �Š˜tÑ$Ô$ˆå'¨¯ª°Ñ(8Ô(8½,ÈÑLÔLˆˆV‰å‰wŒw�Š D¨cˆÑ2Ô2Ð2r    r0   )r1   r2   r3   r4   r5   r   Úintr
   r   r7   r-   r8   r9   s   @r   rI   rI   ·   sÁ   ø€ € € € € ðð ð"€Ið '+ðð ð àðð ðð
 ˜t‘Oðð ð ð ð ð ð$ ð3ð 3˜8ð 3¨,ð 3À/ð 3ð 3ð 3ð 3ð 3ñ „[ð3ð 3ð 3ð 3ð 3r    rI   N)r4   Útypingr   r   r   Útelegramr   Útelegram._telegramobjectr   Útelegram._utilsr   Útelegram._utils.argumentparsingr	   Útelegram._utils.typesr
   r   r   r(   r)   r*   rI   rF   r    r   ú<module>rT      s  ðð( LÐ Kà 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø  Ð  Ð  Ð  Ð  Ð  Ø <Ð <Ð <Ð <Ð <Ð <Ø *Ð *Ð *Ð *Ð *Ð *àð ØÐÐÐÐÐð;3ð ;3ð ;3ð ;3ð ;3�>ñ ;3ô ;3ð ;3ð| +ð  +ð  +ð  +ð  +˜ñ  +ô  +ð  +ðF5ð 5ð 5ð 5ð 5˜lñ 5ô 5ð 5ðDð ð ð ð �|ñ ô ð ð$03ð 03ð 03ð 03ð 03�Nñ 03ô 03ð 03ð 03ð 03r    