from pyrogram import filters from pyrogram.enums import ChatMembersFilter, ChatMemberStatus, ChatType from pyrogram.types import Message from Devine import app from Devine.utils.database import set_cmode from Devine.utils.decorators.admins import AdminActual from config import BANNED_USERS @app.on_message(filters.command(["channelplay"]) & filters.group & ~BANNED_USERS) @AdminActual async def playmode_(client, message: Message, _): if len(message.command) < 2: return await message.reply_text(_["cplay_1"].format(message.chat.title)) query = message.text.split(None, 2)[1].lower().strip() if (str(query)).lower() == "disable": await set_cmode(message.chat.id, None) return await message.reply_text(_["cplay_7"]) elif str(query) == "linked": chat = await app.get_chat(message.chat.id) if chat.linked_chat: chat_id = chat.linked_chat.id await set_cmode(message.chat.id, chat_id) return await message.reply_text( _["cplay_3"].format(chat.linked_chat.title, chat.linked_chat.id) ) else: return await message.reply_text(_["cplay_2"]) else: try: chat = await app.get_chat(query) except: return await message.reply_text(_["cplay_4"]) if chat.type != ChatType.CHANNEL: return await message.reply_text(_["cplay_5"]) try: async for user in app.get_chat_members( chat.id, filter=ChatMembersFilter.ADMINISTRATORS ): if user.status == ChatMemberStatus.OWNER: cusn = user.user.username crid = user.user.id except: return await message.reply_text(_["cplay_4"]) if crid != message.from_user.id: return await message.reply_text(_["cplay_6"].format(chat.title, cusn)) await set_cmode(message.chat.id, chat.id) return await message.reply_text(_["cplay_3"].format(chat.title, chat.id))