mirror of
				https://github.com/cdryzun/tg_bot_collections.git
				synced 2025-11-04 16:56:43 +08:00 
			
		
		
		
	feat: add --disable-command option to specify a command to disable
This commit is contained in:
		@ -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 <command>` option to disable it. This option can be used multiple times.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Contribution
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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.")
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								tg.py
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								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
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user