import contextlib import logging from os import getpid from libbot.pyrogram.classes import PyroClient from modules.scheduler import scheduler # Uncomment this and the line below client declaration # in order to use context manager in your commands. # Don't forget to disable PyroClient workers if you want # to use convopyro, because workers create more event loops. # from convopyro import Conversation logging.basicConfig( level=logging.INFO, format="%(name)s.%(funcName)s | %(levelname)s | %(message)s", datefmt="[%X]", ) logger = logging.getLogger(__name__) with contextlib.suppress(ImportError): import uvloop uvloop.install() def main(): client = PyroClient(scheduler=scheduler) # Conversation(client) try: client.run() except KeyboardInterrupt: logger.warning("Forcefully shutting down with PID %s...", getpid()) finally: if client.scheduler is not None: client.scheduler.shutdown() exit() if __name__ == "__main__": main()