from app import app from os import getpid, listdir from pyrogram import filters from pyrogram.types import Message, BotCommandScopeDefault, BotCommandScopeChat from pyrogram.errors import bad_request_400 from pyrogram.client import Client from modules.utils import logWrite, should_quote, configGet from modules import custom_filters pid = getpid() # Shutdown command ============================================================================================================= @app.on_message(custom_filters.enabled_general & ~filters.scheduled & filters.private & filters.command(["resetcommands"], prefixes=["/"]) & custom_filters.admin) async def cmd_kill(app: Client, msg: Message): if msg.from_user.id == configGet("owner"): logWrite(f"Resetting all commands on owner's request") valid_locales = [] files_locales = listdir(f'{configGet("locale", "locations")}') for entry in files_locales: if entry.endswith(".json"): valid_locales.append(".".join(entry.split(".")[:-1])) if configGet("debug") is True: logWrite(f'Resetting commands in groups {configGet("admin", "groups")} and {configGet("users", "groups")}') await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("admin", "groups"))) await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("users", "groups"))) for admin in configGet("admins"): try: if configGet("debug") is True: logWrite(f'Resetting commands for admin {admin}') await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=admin)) except bad_request_400.PeerIdInvalid: pass try: if configGet("debug") is True: logWrite(f'Resetting commands for owner {configGet("owner")}') for lc in valid_locales: if configGet("debug") is True: logWrite(f'Resetting commands for owner {configGet("owner")} [{lc}]') await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("owner")), language_code=lc) await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("owner"))) except bad_request_400.PeerIdInvalid: pass for lc in valid_locales: if configGet("debug") is True: logWrite(f'Resetting commands for locale {lc}') await app.delete_bot_commands(scope=BotCommandScopeDefault(), language_code=lc) if configGet("debug") is True: logWrite(f'Resetting default commands') await app.delete_bot_commands() await msg.reply_text("OK", quote=should_quote(msg)) if configGet("debug") is True: logWrite(str(await app.get_bot_commands())) logWrite(str(await app.get_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("owner"))))) # ==============================================================================================================================