import logging import logging.config logging.config.fileConfig('logging.conf') logging.getLogger().setLevel(logging.INFO) logging.getLogger("pyrogram").setLevel(logging.ERROR) logging.getLogger("imdbpy").setLevel(logging.ERROR) logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) logging.getLogger("aiohttp").setLevel(logging.ERROR) logging.getLogger("aiohttp.web").setLevel(logging.ERROR) from pyrogram import Client from database.ia_filterdb import Media from info import * from utils import temp from typing import Union, Optional, AsyncGenerator from pyrogram import types from aiohttp import web from pyrogram import Client from info import * class LazyPrincessXBot(Client): def __init__(self): super().__init__( name=SESSION, api_id=API_ID, api_hash=API_HASH, bot_token=BOT_TOKEN, workers=50, plugins={"root": "plugins"}, sleep_threshold=5, ) async def iter_messages( self, chat_id: Union[int, str], limit: int, offset: int = 0, ) -> Optional[AsyncGenerator["types.Message", None]]: """Iterate through a chat sequentially. This convenience method does the same as repeatedly calling :meth:`~pyrogram.Client.get_messages` in a loop, thus saving you from the hassle of setting up boilerplate code. It is useful for getting the whole chat messages with a single call. Parameters: chat_id (``int`` | ``str``): Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use "me" or "self". For a contact that exists in your Telegram address book you can use his phone number (str). limit (``int``): Identifier of the last message to be returned. offset (``int``, *optional*): Identifier of the first message to be returned. Defaults to 0. Returns: ``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects. Example: .. code-block:: python for message in app.iter_messages("pyrogram", 1, 15000): print(message.text) """ current = offset while True: new_diff = min(200, limit - current) if new_diff <= 0: return messages = await self.get_messages(chat_id, list(range(current, current+new_diff+1))) for message in messages: yield message current += 1 LazyPrincessBot = LazyPrincessXBot() multi_clients = {} work_loads = {}