Ë
    S"“j^  ã                   óP   — d dl mZmZmZ ddlmZ ddlmZ e G d„ de«      «       Zy)é   )ÚEventBuilderÚEventCommonÚname_inner_eventé   )Úutils)Útypesc                   ób   ‡ — e Zd ZdZ	 d
ddddœˆ fd„Zedd„«       Zˆ fd„Z G d„ d	e«      Z	ˆ xZ
S )ÚMessageReadae  
    Occurs whenever one or more messages are read in a chat.

    Args:
        inbox (`bool`, optional):
            If this argument is `True`, then when you read someone else's
            messages the event will be fired. By default (`False`) only
            when messages you sent are read by someone else will fire it.

    Example
        .. code-block:: python

            from telethon import events

            @client.on(events.MessageRead)
            async def handler(event):
                # Log when someone reads your messages
                print('Someone has read all your messages until', event.max_id)

            @client.on(events.MessageRead(inbox=True))
            async def handler(event):
                # Log when you read message in a chat (from your "inbox")
                print('You have read messages until', event.max_id)
    NF)Úblacklist_chatsÚfuncÚinboxc                ó8   •— t         ‰| �  |||¬«       || _        y )N)r   r   )ÚsuperÚ__init__r   )ÚselfÚchatsr   r   r   Ú	__class__s        €ú\/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/telethon/events/messageread.pyr   zMessageRead.__init__    s   ø€ ä‰Ñ˜°ÀdÐÔKØˆ�
ó    c                 óp  — t        |t        j                  «      r'| j                  |j                  |j
                  d«      S t        |t        j                  «      r'| j                  |j                  |j
                  d«      S t        |t        j                  «      r:| j                  t        j                  |j                  «      |j
                  d«      S t        |t        j                  «      r:| j                  t        j                  |j                  «      |j
                  d«      S t        |t        j                  «      r| j                  |j                  d¬«      S t        |t        j                  «      r;| j                  t        j                  |j                  «      |j                  d¬«      S y )NFT)Úmessage_idsÚcontents)Ú
isinstancer   ÚUpdateReadHistoryInboxÚEventÚpeerÚmax_idÚUpdateReadHistoryOutboxÚUpdateReadChannelInboxÚPeerChannelÚ
channel_idÚUpdateReadChannelOutboxÚUpdateReadMessagesContentsÚmessagesÚ!UpdateChannelReadMessagesContents)ÚclsÚupdateÚothersÚself_ids       r   ÚbuildzMessageRead.build%   sJ  € ä�fœe×:Ñ:Ô;Ø—9‘9˜VŸ[™[¨&¯-©-¸Ó?Ð?Ü˜¤× =Ñ =Ô>Ø—9‘9˜VŸ[™[¨&¯-©-¸Ó>Ð>Ü˜¤× <Ñ <Ô=Ø—9‘9œU×.Ñ.¨v×/@Ñ/@ÓAØ#Ÿ]™]¨Eó3ð 3ä˜¤× =Ñ =Ô>Ø—9‘9œU×.Ñ.¨v×/@Ñ/@ÓAØ#Ÿ]™]¨Dó2ð 2ä˜¤× @Ñ @ÔAØ—9‘9¨¯©Ø&*ð ó ,ð ,ä˜¤× GÑ GÔHØ—9‘9œU×.Ñ.¨v×/@Ñ/@ÓAØ)/¯©Ø&*ð ó ,ð ,ð Ir   c                 óV   •— | j                   |j                  k(  ry t        ‰| �  |«      S ©N)r   Úoutboxr   Úfilter)r   Úeventr   s     €r   r.   zMessageRead.filter9   s%   ø€ Ø�:‰:˜Ÿ™Ò%Øä‰w‰~˜eÓ$Ð$r   c                   óZ   ‡ — e Zd ZdZ	 	 dˆ fd„	Zed„ «       Zed„ «       Zd„ Zd„ Z	d„ Z
ˆ xZS )	úMessageRead.Eventa@  
        Represents the event of one or more messages being read.

        Members:
            max_id (`int`):
                Up to which message ID has been read. Every message
                with an ID equal or lower to it have been read.

            outbox (`bool`):
                `True` if someone else has read your messages.

            contents (`bool`):
                `True` if what was read were the contents of a message.
                This will be the case when e.g. you play a voice note.
                It may only be set on ``inbox`` events.
        c                 ó®   •— || _         || _        |xs g | _        d | _        |xs t	        |xs g d ¬«      | _        t        ‰| �  || j
                  «       y )N)Údefault)r-   r   Ú_message_idsÚ	_messagesÚmaxr   r   r   )r   r   r   Úoutr   r   r   s         €r   r   zMessageRead.Event.__init__P   sP   ø€ àˆDŒKØ$ˆDŒMØ +Ò 1¨rˆDÔØ!ˆDŒNØ ÒH¤C¨Ò(9°rÀ4Ô$HˆDŒKÜ‰GÑ˜T 4§;¡;Õ/r   c                 ó   — | j                    S )zJ
            `True` if you have read someone else's messages.
            )r-   ©r   s    r   r   zMessageRead.Event.inboxY   s   € ð
 —{‘{�?Ð"r   c                 ó   — | j                   S )zÏ
            The IDs of the messages **which contents'** were read.

            Use :meth:`is_read` if you need to check whether a message
            was read instead checking if it's in here.
            )r4   r9   s    r   r   zMessageRead.Event.message_ids`   s   € ð ×$Ñ$Ð$r   c              ƒ   ó  K  — | j                   €a| j                  «       ƒ d{  –—† }|sg | _         | j                   S | j                  j                  || j                  ¬«      ƒ d{  –—† | _         | j                   S 7 ŒY7 Œ­w)a  
            Returns the list of `Message <telethon.tl.custom.message.Message>`
            **which contents'** were read.

            Use :meth:`is_read` if you need to check whether a message
            was read instead checking if it's in here.
            N)Úids)r5   Úget_input_chatÚ_clientÚget_messagesr4   )r   Úchats     r   r?   zMessageRead.Event.get_messagesj   s~   è ø€ ð �~‰~Ð%Ø!×0Ñ0Ó2×2�ÙØ%'�D”Nð
 —>‘>Ð!ð ,0¯<©<×+DÑ+DØ $×"3Ñ"3ð ,Eó ,5÷ &5�D”Nð —>‘>Ð!ð 3øð&5ús"   ‚ B ¢A<£AB Á&A>Á'B Á>B c                 ó  — t        j                  |«      r9|D �cg c]-  }t        |t        «      r|n|j                  | j
                  k  ‘Œ/ c}S t        |t        «      r|| j
                  k  S |j                  | j
                  k  S c c}w )zë
            Returns `True` if the given message (or its ID) has been read.

            If a list-like argument is provided, this method will return a
            list of booleans indicating which messages have been read.
            )r   Úis_list_liker   ÚintÚidr   )r   ÚmessageÚms      r   Úis_readzMessageRead.Event.is_read|   s€   € ô ×!Ñ! 'Ô*à!(ö*Øô )¨¬CÔ0™°a·d±d¸t¿{¹{ÓJò *ð *ô $.¨g´sÔ#;˜Ø,0¯K©Kñ8ð 8Ø$ŸZ™Z¨D¯K©Kñ8ð 8ùò*s   š2Bc                 ó‚   — t        j                  |«      rt        | j                  |«      «      S | j                  |«      S )z*`True` if the message(s) are read message.)r   rB   ÚallrG   )r   rE   s     r   Ú__contains__zMessageRead.Event.__contains__Š   s3   € ä×!Ñ! 'Ô*Ü˜4Ÿ<™<¨Ó0Ó1Ð1à—|‘| GÓ,Ð,r   )NNFFN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r?   rG   rJ   Ú__classcell__©r   s   @r   r   r1   ?   sN   ø„ ñ	ð  HMØ!%õ	0ð 
ñ	#ó 
ð	#ð 
ñ	%ó 
ð	%ò	"ò$	8ö	-r   r   r,   )NN)rK   rL   rM   rN   r   Úclassmethodr*   r.   r   r   rP   rQ   s   @r   r
   r
      sK   ø„ ñð2 ðØ16¸TÈöð
 ò,ó ð,ô&%ôP-�÷ P-ð P-r   r
   N)	Úcommonr   r   r   Ú r   Útlr   r
   © r   r   ú<module>rW      s/   ðß ?Ñ ?Ý Ý ð ôH-�,ó H-ó ñH-r   