
    i                         d Z ddlmZ ddlmZmZmZmZ ddlm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mZ dd
lmZ erddlmZ  G d de          Z G d de          ZdS )zQThis module contains an object that represents a Telegram MessageReaction Update.    )datetime)TYPE_CHECKINGOptionalSequenceTuple)Chat)ReactionCountReactionType)TelegramObject)User)parse_sequence_arg)extract_tzinfo_from_defaultsfrom_timestamp)JSONDict)Botc                        e Zd ZdZdZdddedededee	         d	e
e         f
 fd
Zede
e         ddde
d          f fd            Z xZS )MessageReactionCountUpdatedaU  This class represents reaction changes on a message with anonymous reactions.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if the :attr:`chat`, :attr:`message_id`, :attr:`date` and :attr:`reactions`
    is equal.

    .. versionadded:: 20.8

    Args:
        chat (:class:`telegram.Chat`): The chat containing the message.
        message_id (:obj:`int`): Unique message identifier inside the chat.
        date (:class:`datetime.datetime`): Date of the change in Unix time
            |datetime_localization|
        reactions (Sequence[:class:`telegram.ReactionCount`]): List of reactions that are present
            on the message

    Attributes:
        chat (:class:`telegram.Chat`): The chat containing the message.
        message_id (:obj:`int`): Unique message identifier inside the chat.
        date (:class:`datetime.datetime`): Date of the change in Unix time
            |datetime_localization|
        reactions (Tuple[:class:`telegram.ReactionCount`]): List of reactions that are present on
            the message
    )chatdate
message_id	reactionsN
api_kwargsr   r   r   r   r   c                   t                                          |           || _        || _        || _        t          |          | _        | j        | j        | j        | j        f| _        |                                  d S Nr   )	super__init__r   r   r   r   r   	_id_attrs_freeze)selfr   r   r   r   r   	__class__s         f/var/www/html/crypto-bot/backend/venv/lib/python3.11/site-packages/telegram/_messagereactionupdated.pyr   z$MessageReactionCountUpdated.__init__D   sm     	J///	)"	4Fy4Q4Q)T_diP    databotr   returnc                    |                      |          }|sdS t          |          }t          |                    d          |          |d<   t	          j        |                    d          |          |d<   t          j        |                    d          |          |d<   t                                          ||          S ),See :meth:`telegram.TelegramObject.de_json`.Nr   tzinfor   r   r$   r%   )	_parse_datar   r   getr   de_jsonr	   de_listr   clsr$   r%   
loc_tzinfor!   s       r"   r.   z#MessageReactionCountUpdated.de_jsonW   s    
 t$$ 	4 2#66
%dhhv&6&6zJJJV|DHHV$4$4c::V)1$((;2G2GMM[wwDc222r#   )__name__
__module____qualname____doc__	__slots__r   intr   r   r	   r   r   r   classmethodr.   __classcell__r!   s   @r"   r   r   #   s         2I *.    	
 M* X&     & 3H%3,13	/	03 3 3 3 3 [3 3 3 3 3r#   r   c                        e Zd ZdZdZ	 	 ddddedededee	         d	ee	         d
e
e         de
e         de
e         f fdZede
e         ddde
d          f fd            Z xZS )MessageReactionUpdateda  This class represents a change of a reaction on a message performed by a user.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if the :attr:`chat`, :attr:`message_id`, :attr:`date`, :attr:`old_reaction`
    and :attr:`new_reaction` is equal.

    .. versionadded:: 20.8

    Args:
        chat (:class:`telegram.Chat`): The chat containing the message.
        message_id (:obj:`int`): Unique message identifier inside the chat.
        date (:class:`datetime.datetime`): Date of the change in Unix time.
            |datetime_localization|
        old_reaction (Sequence[:class:`telegram.ReactionType`]): Previous list of reaction types
            that were set by the user.
        new_reaction (Sequence[:class:`telegram.ReactionType`]): New list of reaction types that
            were set by the user.
        user (:class:`telegram.User`, optional): The user that changed the reaction, if the user
            isn't anonymous.
        actor_chat (:class:`telegram.Chat`, optional): The chat on behalf of which the reaction was
            changed, if the user is anonymous.

    Attributes:
        chat (:class:`telegram.Chat`): The chat containing the message.
        message_id (:obj:`int`): Unique message identifier inside the chat.
        date (:class:`datetime.datetime`): Date of the change in Unix time.
            |datetime_localization|
        old_reaction (Tuple[:class:`telegram.ReactionType`]): Previous list of reaction types
            that were set by the user.
        new_reaction (Tuple[:class:`telegram.ReactionType`]): New list of reaction types that
            were set by the user.
        user (:class:`telegram.User`): Optional. The user that changed the reaction, if the user
            isn't anonymous.
        actor_chat (:class:`telegram.Chat`): Optional. The chat on behalf of which the reaction was
            changed, if the user is anonymous.
    )
actor_chatr   r   r   new_reactionold_reactionuserNr   r   r   r   r@   r?   rA   r>   r   c                T   t                                          |           || _        || _        || _        t          |          | _        t          |          | _        || _        || _	        | j        | j        | j        | j        | j        f| _
        |                                  d S r   )r   r   r   r   r   r   r@   r?   rA   r>   r   r   )
r    r   r   r   r@   r?   rA   r>   r   r!   s
            r"   r   zMessageReactionUpdated.__init__   s     	J///	)"	6H6V6V6H6V6V %)	*4 IOI
 	r#   r$   r%   r   r&   c                    |                      |          }|sdS t          |          }t          |                    d          |          |d<   t	          j        |                    d          |          |d<   t          j        |                    d          |          |d<   t          j        |                    d          |          |d<   t          j        |                    d          |          |d<   t	          j        |                    d          |          |d<   t                                          ||	          S )
r(   Nr   r)   r   r@   r?   rA   r>   r+   )
r,   r   r   r-   r   r.   r
   r/   r   r   r0   s       r"   r.   zMessageReactionUpdated.de_json   s    t$$ 	4 2#66
%dhhv&6&6zJJJV|DHHV$4$4c::V+3DHH^4L4LcRR^+3DHH^4L4LcRR^|DHHV$4$4c::V!\$((<*@*@#FF\wwDc222r#   )NN)r3   r4   r5   r6   r7   r   r8   r   r   r
   r   r   r   r   r9   r.   r:   r;   s   @r"   r=   r=   k   s       # #JI"  $%) *.    	
 |, |, tn TN X&     B 38H- 3E 3hG_>` 3 3 3 3 3 [3 3 3 3 3r#   r=   N)r6   r   typingr   r   r   r   telegram._chatr   telegram._reactionr	   r
   telegram._telegramobjectr   telegram._userr   telegram._utils.argumentparsingr   telegram._utils.datetimer   r   telegram._utils.typesr   telegramr   r   r=    r#   r"   <module>rN      sY  & X W       ; ; ; ; ; ; ; ; ; ; ; ;       : : : : : : : : 3 3 3 3 3 3       > > > > > > Q Q Q Q Q Q Q Q * * * * * * E3 E3 E3 E3 E3. E3 E3 E3Pc3 c3 c3 c3 c3^ c3 c3 c3 c3 c3r#   