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) @Gojo.on_message(command("disable") & can_change_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 @Gojo.on_message(command("disabledel") & can_change_filter) 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 @Gojo.on_message(command("enable") & can_change_filter) 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]}!") @Gojo.on_message(command("disableable") & can_change_filter) 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" • {escape(i)}" for i in disable_cmd_keys ) return await m.reply_text(tes) @Gojo.on_message(command("disabled") & admin_filter) 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" • {escape(i)}" for i in disable_list ) return await m.reply_text(tex) @Gojo.on_message(command("enableall") & owner_filter) 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 @Gojo.on_callback_query(filters.regex("^enableallcmds$")) 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. """