diff --git a/sopel_modules/SpiceBot_AI/AI.py b/sopel_modules/SpiceBot_AI/AI.py index 6927abb..b28ed08 100644 --- a/sopel_modules/SpiceBot_AI/AI.py +++ b/sopel_modules/SpiceBot_AI/AI.py @@ -10,11 +10,12 @@ from sopel_modules.SpiceBot_SBTools import sopel_triggerargs, googlesearch, bot_ from sopel_modules.SpiceBot_Events.System import botevents +@botevents.check_ready([botevents.BOT_LOADED, botevents.BOT_COMMANDSQUERY]) @sopel.module.nickname_commands('(.*)') def bot_command_nick(bot, trigger): - while not botevents.check([botevents.BOT_LOADED, botevents.BOT_COMMANDSQUERY]): - pass + # while not botevents.check([botevents.BOT_LOADED, botevents.BOT_COMMANDSQUERY]): + # pass triggerargs, triggercommand = sopel_triggerargs(bot, trigger, 'nickname_command') diff --git a/sopel_modules/SpiceBot_Channels/Channels_Command.py b/sopel_modules/SpiceBot_Channels/Channels_Command.py index df4010d..92ae05c 100644 --- a/sopel_modules/SpiceBot_Channels/Channels_Command.py +++ b/sopel_modules/SpiceBot_Channels/Channels_Command.py @@ -14,11 +14,12 @@ from sopel_modules.SpiceBot_SBTools import ( from .Channels import bot_part_empty +@botevents.check_ready([botevents.BOT_LOADED]) @sopel.module.nickname_commands('channels', 'channel') def nickname_comand_channels(bot, trigger): - while not botevents.check(botevents.BOT_LOADED): - pass + # while not botevents.check(botevents.BOT_LOADED): + # pass triggerargs, triggercommand = sopel_triggerargs(bot, trigger, 'nickname_command') diff --git a/sopel_modules/SpiceBot_CommandsQuery/NickQueryCommand.py b/sopel_modules/SpiceBot_CommandsQuery/NickQueryCommand.py index c618737..2e81930 100644 --- a/sopel_modules/SpiceBot_CommandsQuery/NickQueryCommand.py +++ b/sopel_modules/SpiceBot_CommandsQuery/NickQueryCommand.py @@ -12,11 +12,12 @@ from sopel_modules.SpiceBot_SBTools import sopel_triggerargs, similar_list, lett import spicemanip +@botevents.check_ready([botevents.BOT_COMMANDSQUERY]) @sopel.module.nickname_commands('(.*)') def query_detection_nick(bot, trigger): - while not botevents.check(botevents.BOT_COMMANDSQUERY): - pass + # while not botevents.check(botevents.BOT_COMMANDSQUERY): + # pass triggerargs, triggercommand = sopel_triggerargs(bot, trigger, 'nickname_command') diff --git a/sopel_modules/SpiceBot_CommandsQuery/QueryCommand.py b/sopel_modules/SpiceBot_CommandsQuery/QueryCommand.py index 81d60f2..a4aec45 100644 --- a/sopel_modules/SpiceBot_CommandsQuery/QueryCommand.py +++ b/sopel_modules/SpiceBot_CommandsQuery/QueryCommand.py @@ -12,11 +12,12 @@ from sopel_modules.SpiceBot_SBTools import sopel_triggerargs, similar_list, lett import spicemanip +@botevents.check_ready([botevents.BOT_COMMANDSQUERY]) @sopel.module.rule('^\?(.*)') def query_detection(bot, trigger): - while not botevents.check(botevents.BOT_COMMANDSQUERY): - pass + # while not botevents.check(botevents.BOT_COMMANDSQUERY): + # pass triggerargs, triggercommand = sopel_triggerargs(bot, trigger, 'query_command') diff --git a/sopel_modules/SpiceBot_Events/System.py b/sopel_modules/SpiceBot_Events/System.py index b37bc3c..88bc79e 100644 --- a/sopel_modules/SpiceBot_Events/System.py +++ b/sopel_modules/SpiceBot_Events/System.py @@ -5,7 +5,7 @@ from __future__ import unicode_literals, absolute_import, print_function, divisi # sopel imports import sopel from sopel.trigger import PreTrigger -# import functools +import functools from sopel_modules.SpiceBot_SBTools import bot_logging @@ -76,10 +76,27 @@ class BotEvents(object): return False return True + def check_ready(self, checklist): + def actual_decorator(function): + @functools.wraps(function) + def _nop(*args, **kwargs): + # Assign trigger and bot for easy access later + bot, trigger = args[0:2] + while not self.check(checklist): + pass + return function(*args, **kwargs) + return _nop + return actual_decorator + botevents = BotEvents() +def setup(bot): + bot_logging(bot, 'SpiceBot_Events', "Starting setup procedure") + botevents.startup_add([botevents.BOT_WELCOME, botevents.BOT_READY, botevents.BOT_CONNECTED]) + + """ def register_trigger(number, message): def actual_decorator(function): @@ -96,8 +113,3 @@ ideas: pass """ - - -def setup(bot): - bot_logging(bot, 'SpiceBot_Events', "Starting setup procedure") - botevents.startup_add([botevents.BOT_WELCOME, botevents.BOT_READY, botevents.BOT_CONNECTED]) diff --git a/sopel_modules/SpiceBot_GifSearch/gif.py b/sopel_modules/SpiceBot_GifSearch/gif.py index eaa4ac8..a33f6f6 100644 --- a/sopel_modules/SpiceBot_GifSearch/gif.py +++ b/sopel_modules/SpiceBot_GifSearch/gif.py @@ -12,11 +12,12 @@ from sopel_modules.SpiceBot_Events.System import botevents import spicemanip +@botevents.check_ready([botevents.BOT_GIFSEARCH]) @module.commands('gif') def gif_trigger(bot, trigger): - while not botevents.check(botevents.BOT_GIFSEARCH): - pass + # while not botevents.check(botevents.BOT_GIFSEARCH): + # pass triggerargs, triggercommand = sopel_triggerargs(bot, trigger) if not len(triggerargs): diff --git a/sopel_modules/SpiceBot_GifSearch/gifapi.py b/sopel_modules/SpiceBot_GifSearch/gifapi.py index cc7f9e3..c47d7b8 100644 --- a/sopel_modules/SpiceBot_GifSearch/gifapi.py +++ b/sopel_modules/SpiceBot_GifSearch/gifapi.py @@ -12,11 +12,12 @@ from sopel_modules.SpiceBot_SBTools import sopel_triggerargs from sopel_modules.SpiceBot_Events.System import botevents +@botevents.check_ready([botevents.BOT_GIFSEARCH]) @sopel.module.commands('(.*)') def gifapi_triggers(bot, trigger): - while not botevents.check(botevents.BOT_GIFSEARCH): - pass + # while not botevents.check(botevents.BOT_GIFSEARCH): + # pass triggerargs, triggercommand = sopel_triggerargs(bot, trigger, 'prefix_command') diff --git a/sopel_modules/SpiceBot_InvalidCommand/InvalidCommand.py b/sopel_modules/SpiceBot_InvalidCommand/InvalidCommand.py index abda513..e694bcc 100644 --- a/sopel_modules/SpiceBot_InvalidCommand/InvalidCommand.py +++ b/sopel_modules/SpiceBot_InvalidCommand/InvalidCommand.py @@ -27,12 +27,13 @@ def bot_events_complete(bot, trigger): bot.memory["SpiceBot_InvalidCommand"]["valid"].extend(bot.memory['SpiceBot_CommandsQuery']['commands'][comtype].keys()) +@botevents.check_ready([botevents.BOT_LOADED, botevents.BOT_COMMANDSQUERY]) @sopel.module.commands('(.*)') def InvalidCommand_triggers(bot, trigger): return - while not botevents.check([botevents.BOT_LOADED, botevents.BOT_COMMANDSQUERY]): - pass + # while not botevents.check([botevents.BOT_LOADED, botevents.BOT_COMMANDSQUERY]): + # pass triggerargs, triggercommand = sopel_triggerargs(bot, trigger, 'prefix_command') diff --git a/sopel_modules/SpiceBot_Logs/Logs_Command.py b/sopel_modules/SpiceBot_Logs/Logs_Command.py index 63b3b36..fcf83a6 100644 --- a/sopel_modules/SpiceBot_Logs/Logs_Command.py +++ b/sopel_modules/SpiceBot_Logs/Logs_Command.py @@ -11,11 +11,12 @@ from sopel_modules.SpiceBot_Events.System import botevents from .Logs import systemd_logs_fetch, stdio_logs_fetch +@botevents.check_ready([botevents.BOT_LOGS]) @sopel.module.nickname_commands('logs', 'debug') def bot_command_logs(bot, trigger): - while not botevents.check(botevents.BOT_LOGS): - pass + # while not botevents.check(botevents.BOT_LOGS): + # pass if not command_permissions_check(bot, trigger, ['admins', 'owner', 'OP', 'ADMIN', 'OWNER']): bot.say("I was unable to process this Bot Nick command due to privilege issues.")