U
    ;g@                     @   sR   d dl mZmZ d dlZd dlmZmZ d dlmZ d dlmZ G dd dZdS )    )AsyncGeneratorOptionalN)rawenums)types)utilsc                   @   s6   e Zd Zdejjdfdedeee	d  dddZ
d	S )
SearchGlobal r   zpyrogram.Clientzenums.MessagesFilter)ztypes.MessageN)selfqueryfilterlimitreturnc                 C  s   d}t |pd}td|}d}tj }d}tj| | jtjj	j
|| dd||||dddI dH ddI dH }	|	sxdS |	d	 }
t|
j}| |
jjI dH }|
j}|	D ] }|V  |d
7 }||kr dS qq,dS )a#  Search messages globally from all of your chats.

        If you want to get the messages count only, see :meth:`~pyrogram.Client.search_global_count`.

        .. note::

            Due to server-side limitations, you can only get up to around ~10,000 messages and each message
            retrieved will not have any *reply_to_message* field.

        .. include:: /_includes/usable-by/users.rst

        Parameters:
            query (``str``, *optional*):
                Text query string.
                Use "@" to search for mentions.
            
            filter (:obj:`~pyrogram.enums.MessagesFilter`, *optional*):
                Pass a filter in order to search for specific kind of messages only.
                Defaults to any message (no filter).

            limit (``int``, *optional*):
                Limits the number of messages to be retrieved.
                By default, no limit is applied and all messages are returned.

        Returns:
            ``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects.

        Example:
            .. code-block:: python

                from pyrogram import enums

                # Search for "pyrogram". Get the first 50 results
                async for message in app.search_global("pyrogram", limit=50):
                    print(message.text)

                # Search for recent photos from Global. Get the first 20 results
                async for message in app.search_global(filter=enums.MessagesFilter.PHOTO, limit=20):
                    print(message.photo)
        r   l        d   )qr   Zmin_dateZmax_dateZoffset_rateoffset_peer	offset_idr   <   )Zsleep_thresholdN)Zreplies   )absminr   r   ZInputPeerEmptyr   Zparse_messagesZinvokeZ	functionsmessagesr   valueZdatetime_to_timestampdateZresolve_peerZchatid)r
   r   r   r   currenttotalZoffset_dater   r   r   lastmessage r    g/opt/bot/vods_filmes/script/venv/lib/python3.8/site-packages/pyrogram/methods/messages/search_global.pysearch_global   sD    .



zSearchGlobal.search_globalN)__name__
__module____qualname__r   ZMessagesFilterZEMPTYstrintr   r   r"   r    r    r    r!   r      s   
r   )	typingr   r   Zpyrogramr   r   r   r   r   r    r    r    r!   <module>   s
   