
    di8                         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rddlmZ  G 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                   B    e Zd ZdZdZ	 	 	 	 	 	 	 ddddedededed	ed
edz  dedz  dedz  dedz  de	e         dz  dedz  de	e
         dz  dedz  f fdZedeej        z  fd            Zedej        dz  ez  fd            Zeddedddd f fd            Z x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 (Sequence[: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                   t                                          ||||	|           |                                 5  || _        || _        t          |          | _        || _        || _        t          |
          | _
        t          |          | _        t          |          | _        d d d            d S # 1 swxY 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__s                 R/root/projects/qq-shell/venv/lib/python3.11/site-packages/telegram/_files/video.pyr"   zVideo.__init__}   s   " 	)! 	 	
 	
 	
 ^^ 
	Z 
	Z#DJ%DK,8,B,BDN)2DN)2DN5G5N5NDJ:F:W:WD!<Ny<Y<YDN
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Z 
	Zs   A-B66B:=B:returnc                 .    t          | j        d          S )Nr   	attribute)r   r   r$   s    r&   r   zVideo.duration   s     "Nj
 
 
 	
    c                 .    t          | j        d          S )Nr   r)   )r   r   r+   s    r&   r   zVideo.start_timestamp   s    "4#8DUVVVVr,   databotz
Bot | Nonec                 $   |                      |          }t          |                    d          t          |          |d<   t          |                    d          t          |          |d<   t                                          ||          S )z,See :meth:`telegram.TelegramObject.de_json`.r   r   )r.   r/   )_parse_datar   getr   r   r!   de_json)clsr.   r/   r%   s      r&   r3   zVideo.de_json   st     t$$('):):IsKKW,TXXk-B-BLRUVV[wwDc222r,   )NNNNNNN)N)__name__
__module____qualname____doc__	__slots__strintr   r   r   r   r   r"   propertydtm	timedeltar   r   classmethodr3   __classcell__)r%   s   @r&   r   r   $   s       K KZ	I$ !% $ $&*,0-137"Z '+"Z "Z "Z"Z "Z 	"Z
 "Z "Z :"Z :"Z :"Z t#"Z 	"T)"Z $d*"Z L)D0"Z tO"Z "Z "Z "Z "Z "ZH 
#- 
 
 
 X

 W!5!; W W W XW 3 38 3, 3' 3 3 3 3 3 [3 3 3 3 3r,   r   )r8   datetimer=   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&   <module>rL      s  & G F     $ $ $ $ $ $             A A A A A A / / / / / / 5 5 5 5 5 5 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 8 8 8 8 8 8 6 6 6 6 6 6 6 6 O3 O3 O3 O3 O3 O3 O3 O3 O3 O3r,   