Spaces:
Running
Running
| from html import escape | |
| from pyrogram import filters | |
| from pyrogram.enums import ChatMemberStatus as CMS | |
| from pyrogram.types import (CallbackQuery, InlineKeyboardButton, | |
| InlineKeyboardMarkup, Message) | |
| from Powers import HELP_COMMANDS | |
| from Powers.bot_class import Gojo | |
| from Powers.database.disable_db import Disabling | |
| from Powers.utils.custom_filters import (admin_filter, can_change_filter, | |
| command, owner_filter) | |
| async def disableit(_, m: Message): | |
| if len(m.text.split()) < 2: | |
| return await m.reply_text("What to disable?") | |
| disable_cmd_keys = sorted( | |
| k | |
| for j in [HELP_COMMANDS[i]["disablable"] for i in list(HELP_COMMANDS.keys())] | |
| for k in j | |
| ) | |
| db = Disabling(m.chat.id) | |
| disable_list = db.get_disabled() | |
| if str(m.text.split(None, 1)[1]) in disable_list: | |
| return await m.reply_text("It's already disabled!") | |
| if str((m.text.split(None, 1)[1]).lower()) in disable_cmd_keys: | |
| db.add_disable((str(m.text.split(None, 1)[1])).lower()) | |
| await m.reply_text(f"Disabled {m.text.split(None, 1)[1]}!") | |
| return | |
| await m.reply_text("Can't do it sorry!") | |
| return | |
| async def set_dsbl_action(_, m: Message): | |
| db = Disabling(m.chat.id) | |
| status = db.get_action() | |
| cur = status != "none" | |
| args = m.text.split(" ", 1) | |
| if len(args) >= 2: | |
| if args[1].lower() == "on": | |
| db.set_action("del") | |
| await m.reply_text("Oke done!") | |
| elif args[1].lower() == "off": | |
| db.set_action("none") | |
| await m.reply_text("Oke i will not delete!") | |
| else: | |
| await m.reply_text("what are you trying to do ??") | |
| else: | |
| await m.reply_text(f"Current settings:- {cur}") | |
| return | |
| async def enableit(_, m: Message): | |
| if len(m.text.split()) < 2: | |
| return await m.reply_text("What to enable?") | |
| db = Disabling(m.chat.id) | |
| disable_list = db.get_disabled() | |
| if str(m.text.split(None, 1)[1]) not in disable_list: | |
| return await m.reply_text("It's not disabled!") | |
| db.remove_disabled((str(m.text.split(None, 1)[1])).lower()) | |
| return await m.reply_text(f"Enabled {m.text.split(None, 1)[1]}!") | |
| async def disabling(_, m: Message): | |
| disable_cmd_keys = sorted( | |
| k | |
| for j in [HELP_COMMANDS[i]["disablable"] for i in list(HELP_COMMANDS.keys())] | |
| for k in j | |
| ) | |
| tes = "List of commnds that can be disabled:\n" + "\n".join( | |
| f" • <code>{escape(i)}</code>" for i in disable_cmd_keys | |
| ) | |
| return await m.reply_text(tes) | |
| async def disabled(_, m: Message): | |
| db = Disabling(m.chat.id) | |
| disable_list = db.get_disabled() | |
| if not disable_list: | |
| await m.reply_text("No disabled items!") | |
| return | |
| tex = "Disabled commands:\n" + "\n".join( | |
| f" • <code>{escape(i)}</code>" for i in disable_list | |
| ) | |
| return await m.reply_text(tex) | |
| async def rm_alldisbl(_, m: Message): | |
| db = Disabling(m.chat.id) | |
| all_dsbl = db.get_disabled() | |
| if not all_dsbl: | |
| await m.reply_text("No disabled commands in this chat") | |
| return | |
| await m.reply_text( | |
| "Are you sure you want to enable all?", | |
| reply_markup=InlineKeyboardMarkup( | |
| [ | |
| [ | |
| InlineKeyboardButton( | |
| "Confirm", | |
| callback_data="enableallcmds", | |
| ), | |
| InlineKeyboardButton("Cancel", callback_data="close_admin"), | |
| ], | |
| ], | |
| ), | |
| ) | |
| return | |
| async def enablealll(_, q: CallbackQuery): | |
| user_id = q.from_user.id | |
| user_status = (await q.message.chat.get_member(user_id)).status | |
| if user_status not in {CMS.OWNER, CMS.ADMINISTRATOR}: | |
| await q.answer( | |
| "You're not even an admin, don't try this explosive shit!", | |
| show_alert=True, | |
| ) | |
| return | |
| if user_status != CMS.OWNER: | |
| await q.answer( | |
| "You're just an admin, not owner\nStay in your limits!", | |
| show_alert=True, | |
| ) | |
| return | |
| db = Disabling(q.message.chat.id) | |
| db.rm_all_disabled() | |
| await q.message.edit_text("Enabled all!", show_alert=True) | |
| return | |
| __PLUGIN__ = "disable able" | |
| __alt_name__ = ["disable commands", "disable"] | |
| __HELP__ = """ | |
| **Disable commands** | |
| **Admin commands:** | |
| • /disable [command]: To disable the given command. | |
| • /disabledel [on | off]: Will delete the command which is disabled. | |
| • /enable [command]: To enable the given command. | |
| • /disableable : Give all disableable commands. | |
| • /disabled : Give all disabled commands. | |
| **Owner command:** | |
| • /enableall : Enable all the disabled commands. | |
| """ | |