112 lines
4.0 KiB
Python
112 lines
4.0 KiB
Python
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,
|
|
)
|