2
0
mirror of https://github.com/Nick80835/microbot synced 2025-08-22 01:58:17 +00:00

use an argument for lenient commands, small cleanup/fix

This commit is contained in:
Nick80835 2025-06-19 07:57:37 -04:00
parent 04227f6628
commit 8d4bf479de
2 changed files with 21 additions and 22 deletions

View File

@ -351,3 +351,16 @@ class CommandHandler():
@property
def all_incoming_commands(self) -> list[Command]:
return self.incoming_commands + self.incoming_lenient_commands
def push_incoming_command(self, command: Command, lenient: bool = False):
if lenient:
self.incoming_lenient_commands.append(command)
else:
self.incoming_commands.append(command)
def clear_commands(self):
self.incoming_commands = []
self.incoming_lenient_commands = []
self.inline_photo_commands = []
self.inline_article_commands = []
self.callback_queries = []

View File

@ -55,12 +55,7 @@ class Loader():
print_exc()
def reload_all_modules(self):
self.command_handler.incoming_commands = []
self.command_handler.incoming_lenient_commands = []
self.command_handler.inline_photo_commands = []
self.command_handler.inline_article_commands = []
self.command_handler.callback_queries = []
self.command_handler.clear_commands()
errors = ""
for module in self.loaded_modules:
@ -74,32 +69,23 @@ class Loader():
return errors or None
def add(self, pattern: str = None, **args):
def add(self, pattern: str = None, lenient: bool = False, **args):
def decorator(func):
args["pattern"] = args.get("pattern", pattern)
self.command_handler.incoming_commands.append(Command(func, args))
self.command_handler.push_incoming_command(Command(func, args), lenient)
return func
return decorator
def add_lenient(self, pattern: str = None, **args):
def decorator(func):
args["pattern"] = args.get("pattern", pattern)
self.command_handler.incoming_lenient_commands.append(Command(func, args))
return func
return decorator
def add_list(self, pattern: list = None, **args):
def add_list(self, pattern: list = None, lenient: bool = False, **args):
pattern_list = args.get("pattern", pattern)
def decorator(func):
for pattern in pattern_list:
this_args = args.copy()
this_args["pattern"] = pattern
self.command_handler.incoming_commands.append(Command(func, this_args))
self.command_handler.push_incoming_command(Command(func, this_args), lenient)
return func
@ -115,12 +101,12 @@ class Loader():
this_args = args.copy()
this_args["pattern"] = patt
this_args["extra"] = args.get('extra', extra)
self.command_handler.incoming_commands.append(Command(func, this_args))
self.command_handler.push_incoming_command(Command(func, this_args), args.get("lenient", False))
else:
this_args = args.copy()
this_args["pattern"] = pattern
this_args["extra"] = args.get('extra', extra)
self.command_handler.incoming_commands.append(Command(func, this_args))
self.command_handler.push_incoming_command(Command(func, this_args), args.get("lenient", False))
return func
@ -154,7 +140,7 @@ class Loader():
return decorator
def get_cmds_by_func(self, func) -> list:
return [i for i in self.command_handler.incoming_commands if i.function == func]
return [i for i in self.command_handler.all_incoming_commands if i.function == func]
def get_cbs_by_func(self, func) -> list:
return [i for i in self.command_handler.callback_queries if i.function == func]