From 3983666517c429507c1a50020a55b2f51d26dd5b Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Fri, 24 May 2019 10:04:45 -0400 Subject: [PATCH] prerun without && split --- sopel_modules/SpiceBot/Prerun.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/sopel_modules/SpiceBot/Prerun.py b/sopel_modules/SpiceBot/Prerun.py index 23c21b1..3a7acf5 100644 --- a/sopel_modules/SpiceBot/Prerun.py +++ b/sopel_modules/SpiceBot/Prerun.py @@ -21,6 +21,27 @@ class BotPrerun(): self.dict = {} def prerun(self, trigger_command_type='module'): + def actual_decorator(function): + + @functools.wraps(function) + def internal_prerun(bot, trigger, *args, **kwargs): + trigger.sb = {} + # Primary command used for trigger, and a list of all words + trigger.sb["args"], trigger.sb["com"] = self.trigger_args(trigger.args[1], trigger_command_type) + trigger.sb["type"] = trigger_command_type + realcom = commands.get_realcom(trigger.sb["com"], trigger_command_type) + trigger.sb["realcom"] = realcom + trigger.sb["args"], trigger.sb["hyphen_arg"] = self.trigger_hyphen_args(trigger.sb["args"]) + if not trigger.sb["hyphen_arg"]: + # check if anything prohibits the nick from running the command + if self.trigger_runstatus(bot, trigger): + function(bot, trigger, *args, **kwargs) + else: + self.trigger_hyphen_arg_handler(bot, trigger) + return internal_prerun + return actual_decorator + + def prerun_old(self, trigger_command_type='module'): def actual_decorator(function): @functools.wraps(function) @@ -46,14 +67,7 @@ class BotPrerun(): # Run the function for all splits for argsdict in argsdict_list: trigger.sb = copy.deepcopy(argsdict) - trigger.sb["args"], trigger.sb["hyphen_arg"] = self.trigger_hyphen_args(trigger.sb["args"]) - - if not trigger.sb["hyphen_arg"]: - # check if anything prohibits the nick from running the command - if self.trigger_runstatus(bot, trigger): - function(bot, trigger, *args, **kwargs) - else: - self.trigger_hyphen_arg_handler(bot, trigger) + function(bot, trigger, *args, **kwargs) return internal_prerun return actual_decorator