o
    Zzj  ã                   @   s„   d 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mZ ddlmZmZ er8ddlZdd	lmZ G d
d„ deƒZdS )zDThis module contains an object that represents a Telegram LivePhoto.é    )ÚSequence)ÚTYPE_CHECKING)Ú_BaseMedium)Ú	PhotoSize)Úde_list_optionalÚparse_sequence_argÚto_timedelta)ÚJSONDictÚ
TimePeriodN)ÚBotc                       sŒ   e Zd ZdZdZ			dddœdedededed	ed
ee	 dB 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‡  ZS )Ú	LivePhotoa¿  
    This object represents a live photo.

    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.

    .. versionadded:: 22.8

    Args:
        file_id	(:obj:`str`): Identifier for the video 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.
        photo (Sequence[:obj:`telegram.PhotoSize`], optional): Available sizes of the corresponding
            static photo.
        mime_type (:obj:`str`, optional): MIME type of a file as defined by the sender.
        file_size (:obj:`int`, optional): File size in bytes.

    Attributes:
        file_id	(:obj:`str`): Identifier for the video 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 (:class:`datetime.timedelta`): Duration of the video
            in seconds as defined by the sender.
        photo (tuple[:obj:`telegram.PhotoSize`]): Optional. Available sizes of the corresponding
            static photo.
        mime_type (:obj:`str`): Optional. MIME type of a file as defined by the sender.
        file_size (:obj:`int`): Optional. File size in bytes.

    )ÚdurationÚheightÚ	mime_typeÚphotoÚwidthN)Ú
api_kwargsÚfile_idÚfile_unique_idr   r   r   r   r   Ú	file_sizer   c	          
         sh   t ƒ j||||	d� |  ¡ � || _|| _t|ƒ| _t|ƒ| _|| _	W d   ƒ d S 1 s-w   Y  d S )N)r   r   r   r   )
ÚsuperÚ__init__Ú	_unfrozenr   r   r   r   r   r   r   )
Úselfr   r   r   r   r   r   r   r   r   ©Ú	__class__© úT/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_files/livephoto.pyr   T   s   ü


"ùzLivePhoto.__init__ÚdataÚbotz
Bot | NoneÚreturnc                    s0   |   |¡}t| d¡t|ƒ|d< tƒ j||d�S )z,See :meth:`telegram.TelegramObject.de_json`.r   )r   r   )Ú_parse_datar   Úgetr   r   Úde_json)Úclsr   r   r   r   r   r#   p   s   
zLivePhoto.de_json)NNN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚstrÚintr
   r   r   r	   r   Úclassmethodr#   Ú__classcell__r   r   r   r   r   #   s:    (÷õþýüûú
ùø	÷õ&r   )r(   Úcollections.abcr   Útypingr   Útelegram._files._basemediumr   Útelegram._files.photosizer   Útelegram._utils.argumentparsingr   r   r   Útelegram._utils.typesr	   r
   ÚdatetimeÚdtmÚtelegramr   r   r   r   r   r   Ú<module>   s   