o
    Zzj  ã                   @   s`   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
 ddlmZmZ G dd	„ d	eƒZdS )
zDThis module contains an object that represents a Telegram Animation.é    N)Ú_BaseThumbedMedium)Ú	PhotoSize)Úto_timedelta)Úget_timedelta_value)ÚJSONDictÚ
TimePeriodc                       sŠ   e Zd ZdZdZ				dddœdedededed	ed
edB dedB dedB dedB de	dB f‡ fdd„Z
edeejB fdd„ƒZ‡  ZS )Ú	Animationa©	  This object represents an animation file (GIF or H.264/MPEG-4 AVC video without sound).

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

    .. versionchanged:: 20.5
      |removed_thumb_note|

    Args:
        file_id (:obj:`str`): Identifier for this file, which can be used to download
            or reuse the file.
        file_unique_id (:obj:`str`): Unique identifier for this file, which
            is supposed to be the same over time and for different bots.
            Can't be used to download or reuse the file.
        width (:obj:`int`): Video width as defined by the sender.
        height (:obj:`int`): Video height as defined by the sender.
        duration (:obj:`int` | :class:`datetime.timedelta`, optional): Duration of the video
            in seconds as defined by the sender.

            .. versionchanged:: v22.2
                |time-period-input|
        file_name (:obj:`str`, optional): Original animation filename as defined by the sender.
        mime_type (:obj:`str`, optional): MIME type of the file as defined by the sender.
        file_size (:obj:`int`, optional): File size in bytes.
        thumbnail (:class:`telegram.PhotoSize`, optional): Animation thumbnail as defined by
            sender.

            .. versionadded:: 20.2

    Attributes:
        file_id (:obj:`str`): Identifier for this file, which can be used to download
            or reuse the file.
        file_unique_id (:obj:`str`): Unique identifier for this file, which
            is supposed to be the same over time and for different bots.
            Can't be used to download or reuse the file.
        width (:obj:`int`): Video width as defined by the sender.
        height (:obj:`int`): Video height as defined by the sender.
        duration (:obj:`int` | :class:`datetime.timedelta`): Duration of the video in seconds
            as defined by the sender.

            .. deprecated:: v22.2
                |time-period-int-deprecated|
        file_name (:obj:`str`): Optional. Original animation filename as defined by the sender.
        mime_type (:obj:`str`): Optional. MIME type of the file as defined by the sender.
        file_size (:obj:`int`): Optional. File size in bytes.
        thumbnail (:class:`telegram.PhotoSize`): Optional. Animation thumbnail as defined by
            sender.

            .. versionadded:: 20.2

    )Ú	_durationÚ	file_nameÚheightÚ	mime_typeÚwidthN)Ú
api_kwargsÚfile_idÚfile_unique_idr   r   Údurationr
   r   Ú	file_sizeÚ	thumbnailr   c
                   sf   t ƒ j||||
|	d� |  ¡ � || _|| _t|ƒ| _|| _|| _W d   ƒ d S 1 s,w   Y  d S )N)r   r   r   r   r   )	ÚsuperÚ__init__Ú	_unfrozenr   r   r   r	   r   r
   )Úselfr   r   r   r   r   r
   r   r   r   r   ©Ú	__class__© úT/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_files/animation.pyr   U   s   û

"ùzAnimation.__init__Úreturnc                 C   s   t | jdd�S )Nr   )Ú	attribute)r   r	   )r   r   r   r   r   s   s   ÿzAnimation.duration)NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚstrÚintr   r   r   r   ÚpropertyÚdtmÚ	timedeltar   Ú__classcell__r   r   r   r   r      s@    4	öôþýüûúùø	÷
öôr   )r!   Údatetimer&   Ú"telegram._files._basethumbedmediumr   Útelegram._files.photosizer   Útelegram._utils.argumentparsingr   Útelegram._utils.datetimer   Útelegram._utils.typesr   r   r   r   r   r   r   Ú<module>   s   