From 6ab6d263311d6ebfdf6a915850bc70f30f615a61 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Sun, 5 May 2019 19:57:17 -0400 Subject: [PATCH] split events --- sopel_modules/SpiceBot_Events/Events.py | 106 +++------------------- sopel_modules/SpiceBot_Events/System.py | 84 +++++++++++++++++ sopel_modules/SpiceBot_Events/__init__.py | 1 + 3 files changed, 100 insertions(+), 91 deletions(-) create mode 100644 sopel_modules/SpiceBot_Events/System.py diff --git a/sopel_modules/SpiceBot_Events/Events.py b/sopel_modules/SpiceBot_Events/Events.py index d30c75f..49b4456 100644 --- a/sopel_modules/SpiceBot_Events/Events.py +++ b/sopel_modules/SpiceBot_Events/Events.py @@ -1,28 +1,27 @@ -#!/usr/bin/env python -#coding=utf-8 -from __future__ import unicode_literals, absolute_import, print_function, division +# coding=utf-8 -# sopel imports -import sopel +from __future__ import unicode_literals, absolute_import, division, print_function +import sopel.module + +from .System import bot_events_trigger, bot_events_recieved, bot_events_startup_check, bot_events_check from sopel_modules.SpiceBot_SBTools import bot_logging import time -def configure(config): - pass +@sopel.module.event('001') +@sopel.module.rule('.*') +def bot_startup_connection(bot, trigger): + bot_events_trigger(bot, 1001, "Welcome to the SpiceBot Events System") + if bot_events_check(bot, '1004'): + return -def setup(bot): - bot_logging(bot, 'SpiceBot_Events', "Starting setup procedure.") - bot_events_setup_check(bot) - bot_events_startup_register(bot, ['1001', '1002', '1003', '1004']) - - -def shutdown(bot): - if "SpiceBot_Events" in bot.memory: - del bot.memory["SpiceBot_Events"] + while not len(bot.channels.keys()) > 0: + pass + time.sleep(1) + bot_events_trigger(bot, 1003, "Bot Connected to IRC") @sopel.module.event('1001') @@ -55,78 +54,3 @@ def bot_events_connected(bot, trigger): def bot_events_monologue(bot, trigger): bot_events_recieved(bot, trigger.event) bot.osd('SpiceBot_Events complete', bot.channels.keys()) - - -@sopel.module.event('001') -@sopel.module.rule('.*') -def bot_startup_connection(bot, trigger): - bot_events_trigger(bot, 1001, "Welcome to the SpiceBot Events System") - - if bot_events_check(bot, '1004'): - return - - while not len(bot.channels.keys()) > 0: - pass - time.sleep(1) - bot_events_trigger(bot, 1003, "Bot Connected to IRC") - - -def bot_events_trigger(bot, number, message): - - bot_events_setup_check(bot) - - bot.memory["SpiceBot_Events"]["triggers"][str(number)] = message - - pretrigger = sopel.trigger.PreTrigger( - bot.nick, - ":SpiceBot_Events " + str(number) + " " + str(bot.nick) + " :" + message - ) - bot.dispatch(pretrigger) - - -def bot_events_setup_check(bot): - if "SpiceBot_Events" not in bot.memory: - bot.memory["SpiceBot_Events"] = {"triggers": {}, "startup": [], "loaded": []} - - -def bot_events_check(bot, listreq): - - bot_events_setup_check(bot) - - if not isinstance(listreq, list): - listreq = [str(listreq)] - - for requirement in listreq: - if requirement not in bot.memory["SpiceBot_Events"]["loaded"]: - return False - - return True - - -def bot_events_startup_register(bot, addonreq): - - bot_events_setup_check(bot) - - if not isinstance(addonreq, list): - addonreq = [str(addonreq)] - - bot.memory["SpiceBot_Events"]["startup"].extend(addonreq) - - -def bot_events_recieved(bot, number): - - bot_events_setup_check(bot) - - if str(number) not in bot.memory["SpiceBot_Events"]["loaded"]: - bot.memory["SpiceBot_Events"]["loaded"].append(str(number)) - - -def bot_events_startup_check(bot): - - bot_events_setup_check(bot) - - for startupitem in bot.memory["SpiceBot_Events"]["startup"]: - if str(startupitem) not in bot.memory["SpiceBot_Events"]["loaded"]: - return False - - return True diff --git a/sopel_modules/SpiceBot_Events/System.py b/sopel_modules/SpiceBot_Events/System.py new file mode 100644 index 0000000..c32a7fd --- /dev/null +++ b/sopel_modules/SpiceBot_Events/System.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python +#coding=utf-8 +from __future__ import unicode_literals, absolute_import, print_function, division + +# sopel imports +import sopel + +from sopel_modules.SpiceBot_SBTools import bot_logging + + +def configure(config): + pass + + +def setup(bot): + bot_logging(bot, 'SpiceBot_Events', "Starting setup procedure.") + bot_events_setup_check(bot) + bot_events_startup_register(bot, ['1001', '1002', '1003', '1004']) + + +def shutdown(bot): + if "SpiceBot_Events" in bot.memory: + del bot.memory["SpiceBot_Events"] + + +def bot_events_trigger(bot, number, message): + + bot_events_setup_check(bot) + + bot.memory["SpiceBot_Events"]["triggers"][str(number)] = message + + pretrigger = sopel.trigger.PreTrigger( + bot.nick, + ":SpiceBot_Events " + str(number) + " " + str(bot.nick) + " :" + message + ) + bot.dispatch(pretrigger) + + +def bot_events_setup_check(bot): + if "SpiceBot_Events" not in bot.memory: + bot.memory["SpiceBot_Events"] = {"triggers": {}, "startup": [], "loaded": []} + + +def bot_events_check(bot, listreq): + + bot_events_setup_check(bot) + + if not isinstance(listreq, list): + listreq = [str(listreq)] + + for requirement in listreq: + if requirement not in bot.memory["SpiceBot_Events"]["loaded"]: + return False + + return True + + +def bot_events_startup_register(bot, addonreq): + + bot_events_setup_check(bot) + + if not isinstance(addonreq, list): + addonreq = [str(addonreq)] + + bot.memory["SpiceBot_Events"]["startup"].extend(addonreq) + + +def bot_events_recieved(bot, number): + + bot_events_setup_check(bot) + + if str(number) not in bot.memory["SpiceBot_Events"]["loaded"]: + bot.memory["SpiceBot_Events"]["loaded"].append(str(number)) + + +def bot_events_startup_check(bot): + + bot_events_setup_check(bot) + + for startupitem in bot.memory["SpiceBot_Events"]["startup"]: + if str(startupitem) not in bot.memory["SpiceBot_Events"]["loaded"]: + return False + + return True diff --git a/sopel_modules/SpiceBot_Events/__init__.py b/sopel_modules/SpiceBot_Events/__init__.py index 2e6b7d5..532880f 100644 --- a/sopel_modules/SpiceBot_Events/__init__.py +++ b/sopel_modules/SpiceBot_Events/__init__.py @@ -1,6 +1,7 @@ # coding=utf8 from __future__ import unicode_literals, absolute_import, division, print_function +from .System import * from .Events import * __author__ = 'Sam Zick'