§
    ªeîi:-  ã                   ób  — d Z ddl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 dd	lm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 erddlmZ  G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# G d„ de¦  «        Z$dS )zCThis module contains objects that represent paid media in Telegram.é    N)ÚSequence)ÚTYPE_CHECKINGÚFinal)Ú	constants)Ú	PhotoSize)ÚVideo)ÚTelegramObject)ÚUser)Úenum)Úde_json_optionalÚde_list_optionalÚparse_sequence_argÚto_timedelta)Úget_timedelta_value)ÚJSONDictÚ
TimePeriod)ÚBotc                   óü   ‡ — e Zd ZU dZdZej        j        Zee	         e
d<   	 ej        j        Zee	         e
d<   	 ej        j        Zee	         e
d<   	 ddœde	d	edz  d
dfˆ fd„Zeddeddd
d fˆ fd„¦   «         Zˆ xZS )Ú	PaidMediaaø  Describes the paid media added to a message. Currently, it can be one of:

    * :class:`telegram.PaidMediaPreview`
    * :class:`telegram.PaidMediaPhoto`
    * :class:`telegram.PaidMediaVideo`

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

    .. versionadded:: 21.4

    Args:
        type (:obj:`str`): Type of the paid media.

    Attributes:
        type (:obj:`str`): Type of the paid media.
    )ÚtypeÚPREVIEWÚPHOTOÚVIDEON©Ú
api_kwargsr   r   Úreturnc                óØ   •— t          ¦   «                              |¬¦  «         t          j        t          j        ||¦  «        | _        | j        f| _        |                      ¦   «          d S ©Nr   )	ÚsuperÚ__init__r   Ú
get_memberr   ÚPaidMediaTyper   Ú	_id_attrsÚ_freeze)Úselfr   r   Ú	__class__s      €úW/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/telegram/_paidmedia.pyr    zPaidMedia.__init__H   sT   ø€ õ 	‰Œ×Ò JÐÑ/Ô/Ð/Ýœ­Ô)@À$ÈÑMÔMˆŒ	àœ)˜ˆŒØ�Š‰Œˆˆˆó    ÚdataÚbotú
Bot | Nonec                 óÊ  •— |                       |¦  «        }| j        t          | j        t          | j        t          i}| t          u rG|                     d¦  «        |v r0|| 	                    d¦  «                  
                    ||¬¦  «        S d|v r1|                     d¦  «        x}rt          j        |¬¦  «        nd|d<   t          ¦   «          
                    ||¬¦  «        S )aX  Converts JSON data to the appropriate :class:`PaidMedia` object, i.e. takes
        care of selecting the correct subclass.

        Args:
            data (dict[:obj:`str`, ...]): The JSON data.
            bot (:class:`telegram.Bot`, optional): The bot associated with this object.

        Returns:
            The Telegram object.

        r   ©r)   r*   Úduration)ÚsecondsN)Ú_parse_datar   ÚPaidMediaPreviewr   ÚPaidMediaPhotor   ÚPaidMediaVideor   ÚgetÚpopÚde_jsonÚdtmÚ	timedeltar   )Úclsr)   r*   Ú_class_mappingÚsr&   s        €r'   r6   zPaidMedia.de_jsonT   sÚ   ø€ ð �Š˜tÑ$Ô$ˆð ŒKÕ)ØŒI•~ØŒI•~ð6
ˆð •)ÐÐ §¢¨Ñ 0Ô 0°NÐ BÐ BØ! $§(¢(¨6Ñ"2Ô"2Ô3×;Ò;ÀÈ3Ð;ÑOÔOÐOà˜ÐÐØAEÇÂÈ*ÑAUÔAUÐ<U¸AÐ`�sœ}°QÐ7Ñ7Ô7Ð7Ð\`ˆD�Ñå‰wŒw�Š D¨cˆÑ2Ô2Ð2r(   ©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r"   r   r   ÚstrÚ__annotations__r   r   r   r    Úclassmethodr6   Ú__classcell__©r&   s   @r'   r   r   ,   s  ø€ € € € € € ðð ð$ €Ià#Ô1Ô9€GˆU�3ŒZÐ9Ð9Ñ9Ø;Ø!Ô/Ô5€Eˆ5�Œ:Ð5Ð5Ñ5Ø9Ø!Ô/Ô5€Eˆ5�Œ:Ð5Ð5Ñ5Ø9ð '+ð	
ð 
ð 
àð
ð ˜t‘Oð	
ð
 
ð
ð 
ð 
ð 
ð 
ð 
ð ð3ð 3˜8ð 3¨,ð 3À+ð 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z  dedz  dedz  dedz  d	df
ˆ fd
„Ze	d	ee
j        z  dz  fd„¦   «         Zˆ xZS )r1   a·  The paid media isn't available before the payment.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`width`, :attr:`height`, and :attr:`duration`
    are equal.

    .. versionadded:: 21.4

    .. versionchanged:: v22.2
       As part of the migration to representing time periods using ``datetime.timedelta``,
       equality comparison now considers integer durations and equivalent timedeltas as equal.

    Args:
        type (:obj:`str`): Type of the paid media, always :tg-const:`telegram.PaidMedia.PREVIEW`.
        width (:obj:`int`, optional): Media width as defined by the sender.
        height (:obj:`int`, optional): Media height as defined by the sender.
        duration (:obj:`int` | :class:`datetime.timedelta`, optional): Duration of the media in
            seconds as defined by the sender.

            .. versionchanged:: v22.2
                |time-period-input|

    Attributes:
        type (:obj:`str`): Type of the paid media, always :tg-const:`telegram.PaidMedia.PREVIEW`.
        width (:obj:`int`): Optional. Media width as defined by the sender.
        height (:obj:`int`): Optional. Media height as defined by the sender.
        duration (:obj:`int` | :class:`datetime.timedelta`): Optional. Duration of the media in
            seconds as defined by the sender.

            .. deprecated:: v22.2
                |time-period-int-deprecated|
    )Ú	_durationÚheightÚwidthNr   rJ   rI   r.   r   r   c                ó>  •— t          ¦   «                              t          j        |¬¦  «         |                      ¦   «         5  || _        || _        t          |¦  «        | _        | j	        | j        | j        | j        f| _
        d d d ¦  «         d S # 1 swxY w Y   d S ©N)r   r   )r   r    r   r   Ú	_unfrozenrJ   rI   r   rH   r   r#   )r%   rJ   rI   r.   r   r&   s        €r'   r    zPaidMediaPreview.__init__–   sâ   ø€ õ 	‰Œ×Ò�iÔ/¸JÐÑGÔGÐGà�^Š^ÑÔð 	Rð 	RØ%*ˆDŒJØ&,ˆDŒKÝ3?ÀÑ3IÔ3IˆDŒNà"œi¨¬°T´[À$Ä.ÐQˆDŒNð	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rs   ÁABÂBÂBc                 ó.   — t          | j        d¬¦  «        S )Nr.   )Ú	attribute)r   rH   )r%   s    r'   r.   zPaidMediaPreview.duration§   s   € å" 4¤>¸ZÐHÑHÔHÐHr(   )NNN)r=   r>   r?   r@   rA   Úintr   r   r    Úpropertyr7   r8   r.   rE   rF   s   @r'   r1   r1   r   sù   ø€ € € € € ðð ðB 1€Ið !Ø!Ø&*ð	Rð '+ðRð Rð Rà�T‰zðRð �d‘
ðRð ˜tÑ#ð	Rð ˜t‘OðRð 
ðRð Rð Rð Rð Rð Rð" ðI˜# ¤Ñ-°Ñ4ð Ið Ið Iñ „XðIð Ið Ið Ið Ir(   r1   c                   óv   ‡ — e Zd ZdZdZddœded         dedz  ddfˆ fd	„Zedd
edddd fˆ fd„¦   «         Z	ˆ xZ
S )r2   a3  
    The paid media is a photo.

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

    .. versionadded:: 21.4

    Args:
        type (:obj:`str`): Type of the paid media, always :tg-const:`telegram.PaidMedia.PHOTO`.
        photo (Sequence[:class:`telegram.PhotoSize`]): The photo.

    Attributes:
        type (:obj:`str`): Type of the paid media, always :tg-const:`telegram.PaidMedia.PHOTO`.
        photo (tuple[:class:`telegram.PhotoSize`]): The photo.
    )ÚphotoNr   rS   r   r   r   c                ó
  •— t          ¦   «                              t          j        |¬¦  «         |                      ¦   «         5  t          |¦  «        | _        | j        | j        f| _        d d d ¦  «         d S # 1 swxY w Y   d S rL   )	r   r    r   r   rM   r   rS   r   r#   )r%   rS   r   r&   s      €r'   r    zPaidMediaPhoto.__init__À   s·   ø€ õ 	‰Œ×Ò�iœo¸*ÐÑEÔEÐEà�^Š^ÑÔð 	5ð 	5Ý0BÀ5Ñ0IÔ0IˆDŒJà"œi¨¬Ð4ˆDŒNð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   Á(A8Á8A<Á?A<r)   r*   r+   c                 óÌ   •— |                       |¦  «        }t          |                     d¦  «        t          |¦  «        |d<   t	          ¦   «                              ||¬¦  «        S )NrS   r-   )r0   r   r4   r   r   r6   ©r9   r)   r*   r&   s      €r'   r6   zPaidMediaPhoto.de_jsonÍ   sO   ø€ à�Š˜tÑ$Ô$ˆå(¨¯ª°'Ñ):Ô):½IÀsÑKÔKˆˆW‰Ý‰wŒw�Š D¨cˆÑ2Ô2Ð2r(   r<   )r=   r>   r?   r@   rA   r   r   r    rD   r6   rE   rF   s   @r'   r2   r2   ¬   sÇ   ø€ € € € € ðð ð" €Ið '+ð	5ð 5ð 5à˜Ô$ð5ð ˜t‘Oð	5ð
 
ð5ð 5ð 5ð 5ð 5ð 5ð ð3ð 3˜8ð 3¨,ð 3ÐBRð 3ð 3ð 3ð 3ð 3ñ „[ð3ð 3ð 3ð 3ð 3r(   r2   c                   ój   ‡ — e Zd ZdZdZddœdededz  ddfˆ fd„Zedd	ed
ddd fˆ fd„¦   «         Z	ˆ xZ
S )r3   a  
    The paid media is a video.

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

    .. versionadded:: 21.4

    Args:
        type (:obj:`str`): Type of the paid media, always :tg-const:`telegram.PaidMedia.VIDEO`.
        video (:class:`telegram.Video`): The video.

    Attributes:
        type (:obj:`str`): Type of the paid media, always :tg-const:`telegram.PaidMedia.VIDEO`.
        video (:class:`telegram.Video`): The video.
    )ÚvideoNr   rX   r   r   c                óð   •— t          ¦   «                              t          j        |¬¦  «         |                      ¦   «         5  || _        | j        | j        f| _        d d d ¦  «         d S # 1 swxY w Y   d S rL   )r   r    r   r   rM   rX   r   r#   )r%   rX   r   r&   s      €r'   r    zPaidMediaVideo.__init__é   s¯   ø€ õ 	‰Œ×Ò�iœo¸*ÐÑEÔEÐEà�^Š^ÑÔð 	5ð 	5Ø %ˆDŒJà"œi¨¬Ð4ˆDŒNð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   ÁA+Á+A/Á2A/r)   r*   r+   c                 óÌ   •— |                       |¦  «        }t          |                     d¦  «        t          |¦  «        |d<   t	          ¦   «                              ||¬¦  «        S )NrX   r-   )r0   r   r4   r   r   r6   rV   s      €r'   r6   zPaidMediaVideo.de_jsonö   sO   ø€ à�Š˜tÑ$Ô$ˆå(¨¯ª°'Ñ):Ô):½EÀ3ÑGÔGˆˆW‰Ý‰wŒw�Š D¨cˆÑ2Ô2Ð2r(   r<   )r=   r>   r?   r@   rA   r   r   r    rD   r6   rE   rF   s   @r'   r3   r3   Õ   sÂ   ø€ € € € € ðð ð" €Ið '+ð	5ð 5ð 5àð5ð ˜t‘Oð	5ð
 
ð5ð 5ð 5ð 5ð 5ð 5ð ð3ð 3˜8ð 3¨,ð 3ÐBRð 3ð 3ð 3ð 3ð 3ñ „[ð3ð 3ð 3ð 3ð 3r(   r3   c            	       óz   ‡ — e Zd ZdZdZddœdedee         dedz  ddfˆ fd	„Z	e
dd
edddd fˆ fd„¦   «         Zˆ xZS )ÚPaidMediaInfoaÉ  
    Describes the paid media added to a message.

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

    .. versionadded:: 21.4

    Args:
        star_count (:obj:`int`): The number of Telegram Stars that must be paid to buy access to
            the media.
        paid_media (Sequence[:class:`telegram.PaidMedia`]): Information about the paid media.

    Attributes:
        star_count (:obj:`int`): The number of Telegram Stars that must be paid to buy access to
            the media.
        paid_media (tuple[:class:`telegram.PaidMedia`]): Information about the paid media.
    )Ú
paid_mediaÚ
star_countNr   r^   r]   r   r   c                óÐ   •— t          ¦   «                              |¬¦  «         || _        t          |¦  «        | _        | j        | j        f| _        |                      ¦   «          d S r   )r   r    r^   r   r]   r#   r$   )r%   r^   r]   r   r&   s       €r'   r    zPaidMediaInfo.__init__  sW   ø€ õ 	‰Œ×Ò JÐÑ/Ô/Ð/Ø)ˆŒÝ1CÀJÑ1OÔ1OˆŒàœ/¨4¬?Ð;ˆŒØ�Š‰Œˆˆˆr(   r)   r*   r+   c                 óÌ   •— |                       |¦  «        }t          |                     d¦  «        t          |¦  «        |d<   t	          ¦   «                              ||¬¦  «        S )Nr]   r-   )r0   r   r4   r   r   r6   rV   s      €r'   r6   zPaidMediaInfo.de_json"  sQ   ø€ à�Š˜tÑ$Ô$ˆå-¨d¯hªh°|Ñ.DÔ.DÅiÐQTÑUÔUˆˆ\ÑÝ‰wŒw�Š D¨cˆÑ2Ô2Ð2r(   r<   )r=   r>   r?   r@   rA   rP   r   r   r   r    rD   r6   rE   rF   s   @r'   r\   r\   þ   sÐ   ø€ € € € € ðð ð& -€Ið '+ðð ð àðð ˜YÔ'ðð
 ˜t‘Oðð 
ðð ð ð ð ð ð ð3ð 3˜8ð 3¨,ð 3À/ð 3ð 3ð 3ð 3ð 3ñ „[ð3ð 3ð 3ð 3ð 3r(   r\   c            	       ón   ‡ — e Zd ZdZdZddœdddededz  d	dfˆ fd
„Zeddeddd	d fˆ fd„¦   «         Z	ˆ xZ
S )ÚPaidMediaPurchasedaÁ  This object contains information about a paid media purchase.

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

    Note:
        In Python :keyword:`from` is a reserved word. Use :paramref:`from_user` instead.

    .. versionadded:: 21.6

    Args:
        from_user (:class:`telegram.User`): User who purchased the media.
        paid_media_payload (:obj:`str`): Bot-specified paid media payload.

    Attributes:
        from_user (:class:`telegram.User`): User who purchased the media.
        paid_media_payload (:obj:`str`): Bot-specified paid media payload.
    )Ú	from_userÚpaid_media_payloadNr   rc   r
   rd   r   r   c                ó¶   •— t          ¦   «                              |¬¦  «         || _        || _        | j        | j        f| _        |                      ¦   «          d S r   )r   r    rc   rd   r#   r$   )r%   rc   rd   r   r&   s       €r'   r    zPaidMediaPurchased.__init__@  sQ   ø€ õ 	‰Œ×Ò JÐÑ/Ô/Ð/Ø(ˆŒØ'9ˆÔàœ.¨$Ô*AÐBˆŒØ�Š‰Œˆˆˆr(   r)   r*   r+   c                 óÌ   •— |                       |¦  «        }t          j        |                     d¦  «        |¬¦  «        |d<   t	          ¦   «                              ||¬¦  «        S )NÚfromr-   rc   )r0   r
   r6   r5   r   rV   s      €r'   r6   zPaidMediaPurchased.de_jsonN  sS   ø€ à�Š˜tÑ$Ô$ˆå œL¨d¯hªh°vÑ.>Ô.>ÀCÐHÑHÔHˆˆ[ÑÝ‰wŒw�Š D¨cˆÑ2Ô2Ð2r(   r<   )r=   r>   r?   r@   rA   rB   r   r    rD   r6   rE   rF   s   @r'   rb   rb   *  sÌ   ø€ € € € € ðð ð& 4€Ið '+ðð ð àðð  ðð
 ˜t‘Oðð 
ðð ð ð ð ð ð ð3ð 3˜8ð 3¨,ð 3ÐBVð 3ð 3ð 3ð 3ð 3ñ „[ð3ð 3ð 3ð 3ð 3r(   rb   )%r@   Údatetimer7   Úcollections.abcr   Útypingr   r   Útelegramr   Útelegram._files.photosizer   Útelegram._files.videor   Útelegram._telegramobjectr	   Útelegram._userr
   Útelegram._utilsr   Útelegram._utils.argumentparsingr   r   r   r   Útelegram._utils.datetimer   Útelegram._utils.typesr   r   r   r   r1   r2   r3   r\   rb   © r(   r'   ú<module>ru      sM  ðð& JÐ Ià Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6àð ØÐÐÐÐÐðC3ð C3ð C3ð C3ð C3�ñ C3ô C3ð C3ðL7Ið 7Ið 7Ið 7Ið 7I�yñ 7Iô 7Ið 7Iðt&3ð &3ð &3ð &3ð &3�Yñ &3ô &3ð &3ðR&3ð &3ð &3ð &3ð &3�Yñ &3ô &3ð &3ðR)3ð )3ð )3ð )3ð )3�Nñ )3ô )3ð )3ðX)3ð )3ð )3ð )3ð )3˜ñ )3ô )3ð )3ð )3ð )3r(   