Spaces:
Running
Running
| #!/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 <https://www.gnu.org/licenses/>. | |
| 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() | |
| 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__": | |
| install() | |
| with closing(loop): | |
| with suppress(asyncio.exceptions.CancelledError): | |
| loop.run_until_complete(main()) | |
| loop.run_until_complete(asyncio.sleep(3.0)) |