o
    Zzj5  ã                   @   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 ddlmZmZmZ dd	lmZ dd
lmZmZ erDddlmZ G dd„ deƒZdS )z@This module contains an object that represents a Telegram Video.é    N)ÚSequence)ÚTYPE_CHECKING)Ú_BaseThumbedMedium)Ú	PhotoSize)ÚVideoQuality)Úde_list_optionalÚparse_sequence_argÚto_timedelta)Úget_timedelta_value)ÚJSONDictÚ
TimePeriod)Ú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dB dedB dedB dedB de	e dB dedB de	e
 dB dedB f‡ fdd„ZedeejB fdd„ƒZedejdB eB fdd„ƒZeddedddd f‡ fdd„ƒZ‡  ZS ) ÚVideoaº  This object represents a video file.

    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`): Duration of the video
            in seconds as defined by the sender.

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

            .. versionadded:: 20.2
        cover (Sequence[:class:`telegram.PhotoSize`], optional): Available sizes of the cover of
            the video in the message.

            .. versionadded:: 21.11
        start_timestamp (:obj:`int` | :class:`datetime.timedelta`, optional): Timestamp in seconds
            from which the video will play in the message
            .. versionadded:: 21.11

            .. versionchanged:: v22.2
                |time-period-input|
        qualities (Sequence[:class:`telegram.VideoQuality`], optional): List of available qualities
            of the video

            .. versionadded:: 22.7

    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 filename as defined by the sender.
        mime_type (:obj:`str`): Optional. MIME type of a file as defined by the sender.
        file_size (:obj:`int`): Optional. File size in bytes.
        thumbnail (:class:`telegram.PhotoSize`): Optional. Video thumbnail.

            .. versionadded:: 20.2
        cover (tuple[:class:`telegram.PhotoSize`]): Optional, Available sizes of the cover of
            the video in the message.

            .. versionadded:: 21.11
        start_timestamp (:obj:`int` | :class:`datetime.timedelta`): Optional. Timestamp in seconds
            from which the video will play in the message
            .. versionadded:: 21.11

            .. deprecated:: v22.2
                |time-period-int-deprecated|
        qualities (tuple[:class:`telegram.VideoQuality`]): Optional. List of available qualities
            of the video

            .. versionadded:: 22.7
    )Ú	_durationÚ_start_timestampÚcoverÚ	file_nameÚheightÚ	mime_typeÚ	qualitiesÚwidthN)Ú
api_kwargsÚfile_idÚfile_unique_idr   r   Údurationr   Ú	file_sizer   Ú	thumbnailr   Ústart_timestampr   r   c                   s„   t ƒ j||||	|d� |  ¡ �) || _|| _t|ƒ| _|| _|| _t	|
ƒ| _
t|ƒ| _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   r   r   r   r   )Úselfr   r   r   r   r   r   r   r   r   r   r   r   r   ©Ú	__class__© úP/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_files/video.pyr   }   s"   û



"özVideo.__init__Úreturnc                 C   ó   t | jdd�S )Nr   ©Ú	attribute)r
   r   ©r!   r$   r$   r%   r   ¡   s   ÿzVideo.durationc                 C   r'   )Nr   r(   )r
   r   r*   r$   r$   r%   r   §   s   zVideo.start_timestampÚdataÚbotz
Bot | Nonec                    sF   |   |¡}t| d¡t|ƒ|d< t| d¡t|ƒ|d< tƒ j||d�S )z,See :meth:`telegram.TelegramObject.de_json`.r   r   )r+   r,   )Ú_parse_datar   Úgetr   r   r   Úde_json)Úclsr+   r,   r"   r$   r%   r/   «   s   
zVideo.de_json)NNNNNNN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚstrÚintr   r   r   r   r   r   ÚpropertyÚdtmÚ	timedeltar   r   Úclassmethodr/   Ú__classcell__r$   r$   r"   r%   r   $   sZ    Móñþýüûúùø	÷
ö
õô
óñ$&r   )r4   Údatetimer9   Úcollections.abcr   Útypingr   Ú"telegram._files._basethumbedmediumr   Útelegram._files.photosizer   Útelegram._files.videoqualityr   Útelegram._utils.argumentparsingr   r   r	   Útelegram._utils.datetimer
   Útelegram._utils.typesr   r   Útelegramr   r   r$   r$   r$   r%   Ú<module>   s   