|
from pyrogram import Client, errors |
|
from pyrogram.enums import ChatMemberStatus, ParseMode |
|
|
|
import config |
|
|
|
from ..logging import LOGGER |
|
|
|
|
|
class Drag(Client): |
|
def __init__(self): |
|
LOGGER(__name__).info(f"Starting Bot...") |
|
super().__init__( |
|
name="DragMusic", |
|
api_id=config.API_ID, |
|
api_hash=config.API_HASH, |
|
bot_token=config.BOT_TOKEN, |
|
in_memory=True, |
|
parse_mode=ParseMode.HTML, |
|
max_concurrent_transmissions=7, |
|
) |
|
|
|
async def start(self): |
|
await super().start() |
|
self.id = self.me.id |
|
self.name = self.me.first_name + " " + (self.me.last_name or "") |
|
self.username = self.me.username |
|
self.mention = self.me.mention |
|
|
|
try: |
|
await self.send_message( |
|
chat_id=config.LOGGER_ID, |
|
text=f"<u><b>» {self.mention} ʙᴏᴛ sᴛᴀʀᴛᴇᴅ :</b><u>\n\nɪᴅ : <code>{self.id}</code>\nɴᴀᴍᴇ : {self.name}\nᴜsᴇʀɴᴀᴍᴇ : @{self.username}", |
|
) |
|
except (errors.ChannelInvalid, errors.PeerIdInvalid): |
|
LOGGER(__name__).error( |
|
"Bot has failed to access the log group/channel. Make sure that you have added your bot to your log group/channel." |
|
) |
|
exit() |
|
except Exception as ex: |
|
LOGGER(__name__).error( |
|
f"Bot has failed to access the log group/channel.\n Reason : {type(ex).__name__}." |
|
) |
|
exit() |
|
|
|
a = await self.get_chat_member(config.LOGGER_ID, self.id) |
|
if a.status != ChatMemberStatus.ADMINISTRATOR: |
|
LOGGER(__name__).error( |
|
"Please promote your bot as an admin in your log group/channel." |
|
) |
|
exit() |
|
LOGGER(__name__).info(f"Music Bot Started as {self.name}") |
|
|
|
async def stop(self): |
|
await super().stop() |
|
|