from aiohttp import web from plugins import web_server import asyncio import pyromod.listen from pyrogram import Client from pyrogram.enums import ParseMode import sys from datetime import datetime from config import API_HASH, APP_ID, LOGGER, TG_BOT_TOKEN, TG_BOT_WORKERS, FORCE_SUB_CHANNEL, CHANNEL_ID, PORT name =""" CODEFLEX """ class Bot(Client): def __init__(self): super().__init__( name="Bot", api_hash=API_HASH, api_id=APP_ID, plugins={ "root": "plugins" }, workers=TG_BOT_WORKERS, bot_token=TG_BOT_TOKEN ) self.LOGGER = LOGGER async def start(self): await super().start() usr_bot_me = await self.get_me() self.uptime = datetime.now() if FORCE_SUB_CHANNEL: try: link = (await self.get_chat(FORCE_SUB_CHANNEL)).invite_link if not link: await self.export_chat_invite_link(FORCE_SUB_CHANNEL) link = (await self.get_chat(FORCE_SUB_CHANNEL)).invite_link self.invitelink = link except Exception as a: self.LOGGER(__name__).warning(a) self.LOGGER(__name__).warning("Bot can't Export Invite link from Force Sub Channel!") self.LOGGER(__name__).warning(f"Please Double check the FORCE_SUB_CHANNEL value and Make sure Bot is Admin in channel with Invite Users via Link Permission, Current Force Sub Channel Value: {FORCE_SUB_CHANNEL}") self.LOGGER(__name__).info("\nBot Stopped. https://t.me/weebs_support for support") sys.exit() try: db_channel = await self.get_chat(CHANNEL_ID) self.db_channel = db_channel test = await self.send_message(chat_id=db_channel.id, text="Test Message") await test.delete() except Exception as e: self.LOGGER(__name__).warning(e) self.LOGGER(__name__).warning(f"Make Sure bot is Admin in DB Channel, and Double check the CHANNEL_ID Value, Current Value {CHANNEL_ID}") self.LOGGER(__name__).info("\nBot Stopped. Join https://t.me/weebs_support for support") sys.exit() self.set_parse_mode(ParseMode.HTML) self.username = usr_bot_me.username self.LOGGER(__name__).info(f"Bot Running..! Made by @rohit_1888") # Start Web Server app = web.AppRunner(await web_server()) await app.setup() await web.TCPSite(app, "0.0.0.0", PORT).start() try: await self.send_message(OWNER_ID, text = f"
🤖 Bᴏᴛ Rᴇsᴛᴀʀᴛᴇᴅ by @rohit_1888
") except: pass async def stop(self, *args): await super().stop() self.LOGGER(__name__).info("Bot stopped.") def run(self): """Run the bot.""" loop = asyncio.get_event_loop() loop.run_until_complete(self.start()) self.LOGGER(__name__).info("Bot is now running. Thanks to @rohit_1888") try: loop.run_forever() except KeyboardInterrupt: self.LOGGER(__name__).info("Shutting down...") finally: loop.run_until_complete(self.stop())