|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)) |