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() # Reset commands command ======================================================================================================= @app.on_message(custom_filters.enabled_general & ~filters.scheduled & filters.private & filters.command(["resetcommands"], prefixes=["/"]) & custom_filters.admin) async def cmd_resetcommands(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])) logWrite(f'Resetting commands in groups {configGet("admin", "groups")} and {configGet("users", "groups")}', debug=True) 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 lc in valid_locales: try: logWrite(f'Resetting commands in groups {configGet("admin", "groups")} and {configGet("users", "groups")} [{lc}]', debug=True) await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("admin", "groups")), language_code=lc) await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("users", "groups")), language_code=lc) except: pass for admin in configGet("admins"): try: logWrite(f'Resetting commands for admin {admin}', debug=True) await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=admin)) for lc in valid_locales: try: logWrite(f'Resetting commands for admin {admin} [{lc}]', debug=True) await app.delete_bot_commands(scope=BotCommandScopeChat(chat_id=admin), language_code=lc) except: pass except bad_request_400.PeerIdInvalid: pass try: logWrite(f'Resetting commands for owner {configGet("owner")}', debug=True) for lc in valid_locales: logWrite(f'Resetting commands for owner {configGet("owner")} [{lc}]', debug=True) 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: logWrite(f'Resetting commands for locale {lc}', debug=True) await app.delete_bot_commands(scope=BotCommandScopeDefault(), language_code=lc) logWrite(f'Resetting default commands', debug=True) await app.delete_bot_commands() await msg.reply_text("OK", quote=should_quote(msg)) logWrite(str(await app.get_bot_commands()), debug=True) logWrite(str(await app.get_bot_commands(scope=BotCommandScopeChat(chat_id=configGet("owner")))), debug=True) # ==============================================================================================================================