diff --git a/README.md b/README.md index 9a18f87..a1b5bde 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ for yihong0618's channel: https://t.me/hyi0618 2. Get tg token, ask Google or ChatGPT, need get it from [BotFather](https://t.me/BotFather) 3. python tg.py ${tg_token} +> [!Note] +> If you don't want to use one of these command, you can use `--disable-command ` option to disable it. This option can be used multiple times. + ## Contribution diff --git a/handlers/__init__.py b/handlers/__init__.py index 8aaab27..c24b9f4 100644 --- a/handlers/__init__.py +++ b/handlers/__init__.py @@ -55,12 +55,14 @@ def wrap_handler(handler: T, bot: TeleBot) -> T: return update_wrapper(wrapper, handler) -def load_handlers(bot: TeleBot) -> None: +def load_handlers(bot: TeleBot, disable_commands: list[str]) -> None: # import all submodules this_path = Path(__file__).parent for child in this_path.iterdir(): if child.name.startswith("_"): continue + if child.stem in disable_commands: + continue module = importlib.import_module(f".{child.stem}", __package__) if hasattr(module, "register"): print(f"Loading {child.stem} handlers.") diff --git a/tg.py b/tg.py index 9aed42f..a8f77e9 100644 --- a/tg.py +++ b/tg.py @@ -9,12 +9,24 @@ def main(): # Init args parser = argparse.ArgumentParser() parser.add_argument("tg_token", help="tg token") + + # 'disable-command' option + # The action 'append' will allow multiple entries to be saved into a list + # The variable name is changed to 'disable_commands' + parser.add_argument( + "--disable-command", + action="append", + dest="disable_commands", + help="Specify a command to disable. Can be used multiple times.", + default=[], + ) + options = parser.parse_args() print("Arg parse done.") # Init bot bot = TeleBot(options.tg_token) - load_handlers(bot) + load_handlers(bot, options.disable_commands) print("Bot init done.") # Start bot