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() @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, )