import asyncio from datetime import datetime from pyrogram.enums import ChatType import config from DragMusic import app from DragMusic.core.call import Drag, autoend from DragMusic.utils.database import get_client, is_active_chat, is_autoend async def auto_leave(): if config.AUTO_LEAVING_ASSISTANT: while not await asyncio.sleep(900): from DragMusic.core.userbot import assistants for num in assistants: client = await get_client(num) left = 0 try: async for i in client.get_dialogs(): if i.chat.type in [ ChatType.SUPERGROUP, ChatType.GROUP, ChatType.CHANNEL, ]: if ( i.chat.id != config.LOGGER_ID and i.chat.id != -1001686672798 and i.chat.id != -1001549206010 ): if left == 20: continue if not await is_active_chat(i.chat.id): try: await client.leave_chat(i.chat.id) left += 1 except: continue except: pass asyncio.create_task(auto_leave()) async def auto_end(): while not await asyncio.sleep(5): ender = await is_autoend() if not ender: continue for chat_id in autoend: timer = autoend.get(chat_id) if not timer: continue if datetime.now() > timer: if not await is_active_chat(chat_id): autoend[chat_id] = {} continue autoend[chat_id] = {} try: await Drag.stop_stream(chat_id) except: continue try: await app.send_message( chat_id, "» ʙᴏᴛ ᴀᴜᴛᴏᴍᴀᴛɪᴄᴀʟʟʏ ʟᴇғᴛ ᴠɪᴅᴇᴏᴄʜᴀᴛ ʙᴇᴄᴀᴜsᴇ ɴᴏ ᴏɴᴇ ᴡᴀs ʟɪsᴛᴇɴɪɴɢ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.", ) except: continue asyncio.create_task(auto_end())