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