feat(argparse): show available commands as choices for disable_command option

This commit is contained in:
Pagliacii 2023-12-16 14:30:05 +08:00
parent 93fb98f7b5
commit d410f48db6
2 changed files with 12 additions and 1 deletions

View File

@ -80,3 +80,13 @@ def load_handlers(bot: TeleBot, disable_commands: list[str]) -> None:
if all_commands: if all_commands:
bot.set_my_commands(all_commands) bot.set_my_commands(all_commands)
print("Setting commands done.") print("Setting commands done.")
def available_commands() -> list[str]:
commands = []
this_path = Path(__file__).parent
for child in this_path.iterdir():
if child.name.startswith("_"):
continue
commands.append(child.stem)
return commands

3
tg.py
View File

@ -2,7 +2,7 @@ import argparse
from telebot import TeleBot from telebot import TeleBot
from handlers import load_handlers from handlers import available_commands, load_handlers
def main(): def main():
@ -19,6 +19,7 @@ def main():
dest="disable_commands", dest="disable_commands",
help="Specify a command to disable. Can be used multiple times.", help="Specify a command to disable. Can be used multiple times.",
default=[], default=[],
choices=available_commands(),
) )
options = parser.parse_args() options = parser.parse_args()