#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright 2020-2023 (c) Randy W @xtdevs, @xtsea # # from : https://github.com/TeamKillerX # Channel : @RendyProjects # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import asyncio import logging import sys import importlib from pyrogram import idle import traceback from chatbot import Randydev from database import db from logger import LOGS from pyrogram.errors import * from contextlib import closing, suppress from uvloop import install logging.basicConfig(level=logging.INFO) logging.getLogger("pyrogram.syncer").setLevel(logging.WARNING) logging.getLogger("pyrogram.client").setLevel(logging.WARNING) loop = asyncio.get_event_loop() install() async def main(): try: await db.connect() randydev = Randydev(loop=loop) await randydev.start() await idle() except Exception as e: traceback.print_exc() LOGS.error(f"Error in main: {e}") finally: for task in asyncio.all_tasks(): task.cancel() LOGS.info("All tasks completed successfully!") if __name__ == "__main__": with closing(loop): with suppress(asyncio.exceptions.CancelledError): loop.run_until_complete(main()) loop.run_until_complete(asyncio.sleep(3.0))