diff --git a/sopel_SpiceBot_Core_1/SBCore/commands/__init__.py b/sopel_SpiceBot_Core_1/SBCore/commands/__init__.py index f9404e2..3a254da 100644 --- a/sopel_SpiceBot_Core_1/SBCore/commands/__init__.py +++ b/sopel_SpiceBot_Core_1/SBCore/commands/__init__.py @@ -1,6 +1,6 @@ -from sopel.trigger import PreTrigger +from sopel.trigger import PreTrigger, Trigger class Commands(): @@ -80,13 +80,17 @@ class Commands(): return commands_list def dispatch(self, trigger_dict): + pretrigger = self.get_pretrigger(trigger_dict) + self.bot.dispatch(pretrigger) + + def get_pretrigger(self, trigger_dict): if trigger_dict["trigger_type"] == "command": pretrigger = self.generate_pretrigger_command(trigger_dict) elif trigger_dict["trigger_type"] == "nickname_command": pretrigger = self.generate_pretrigger_nickname_command(trigger_dict) elif trigger_dict["trigger_type"] == "action_command": pretrigger = self.generate_pretrigger_action_command(trigger_dict) - self.bot.dispatch(pretrigger) + return pretrigger def generate_pretrigger_command(self, trigger_dict): # @time=2022-02-23T15:04:01.447Z : @@ -164,14 +168,13 @@ class Commands(): command_aliases = function.action_commands return command_aliases - def get_command_match(self, function, trigger): - command_type = self.what_command_type(trigger) - command_aliases = self.get_command_aliases(function, command_type) - command_match = None - print((dir)) - # for command in command_aliases: - # True - return None + def get_new_trigger(self, test_rule, trigger_dict): + test_rule = plugins.rules.Command.from_callable(settings, tested_func) + parse_results = list(test_rule.parse(msg)) + match = parse_results[0] + pretrigger = self.get_pretrigger(trigger_dict) + trigger = Trigger(self.bot.config, pretrigger, match) + return trigger def get_commands_nosplit(self, trigger): commands = [] diff --git a/sopel_SpiceBot_Core_Prerun/__init__.py b/sopel_SpiceBot_Core_Prerun/__init__.py index 7bfeda1..d9b0e79 100644 --- a/sopel_SpiceBot_Core_Prerun/__init__.py +++ b/sopel_SpiceBot_Core_Prerun/__init__.py @@ -1,5 +1,8 @@ import functools +from sopel import plugins +from sopel.trigger import Trigger + from sopel_SpiceBot_Core_1 import sb @@ -49,7 +52,7 @@ def prerun(): return # At this point, we update the re.match for trigger - comrun.trigger = rebuild_trigger(comrun, trigger) + # comrun.trigger = rebuild_trigger(comrun, function) # Run function function(bot, trigger, comrun, *args, **kwargs) @@ -61,11 +64,12 @@ def prerun(): return actual_decorator -def rebuild_trigger(comrun, trigger): - matchlist = [x for x in dir(trigger.match) if not x.startswith("__")] - for x in matchlist: - print(x) - print(eval("trigger.match.%s" % x)) +def rebuild_trigger(comrun, tested_func): + test_rule = plugins.rules.Command.from_callable(sb.settings, tested_func) + parse_results = list(test_rule.parse("")) + match = parse_results[0] + pretrigger = sb.commands.get_pretrigger(comrun.command) + trigger = Trigger(comrun.bot.config, pretrigger, match) return trigger diff --git a/sopel_SpiceBot_Runtime_Commands/__init__.py b/sopel_SpiceBot_Runtime_Commands/__init__.py index 3bc265f..7f0ad24 100644 --- a/sopel_SpiceBot_Runtime_Commands/__init__.py +++ b/sopel_SpiceBot_Runtime_Commands/__init__.py @@ -30,3 +30,8 @@ def commands_test_c(bot, trigger, comrun): bot.say("test c") bot.say("test c: %s" % trigger.raw) + + +@plugin.command('fart box') +def fart_box(bot, trigger, comrun): + bot.say("fart box")