diff --git a/SpiceBot/__init__.py b/SpiceBot/__init__.py index d959974..a49db70 100644 --- a/SpiceBot/__init__.py +++ b/SpiceBot/__init__.py @@ -6,6 +6,7 @@ from __future__ import unicode_literals, absolute_import, division, print_functi import os import pathlib +from threading import Thread from sopel import plugin @@ -27,3 +28,73 @@ def sb_nickname_command(bot, trigger): bot.say("%s" % sb.versions.dict) sb.osd("test", trigger.sender) + + +""" +Events +""" + + +@plugin.event("001") +@plugin.rule('.*') +def welcome_setup_start(bot, trigger): + sb.comms.ircbackend_initialize(bot) + + +@plugin.event(sb.events.BOT_CONNECTED) +@plugin.rule('.*') +def bot_events_start_set_hostmask(bot, trigger): + sb.comms.hostmask_set(bot) + + +@plugin.event(sb.events.BOT_WELCOME, sb.events.BOT_READY, sb.events.BOT_CONNECTED, sb.events.BOT_LOADED) +@plugin.rule('.*') +def bot_events_complete(bot, trigger): + """This is here simply to log to stderr that this was recieved.""" + sb.logger.info('SpiceBot_Events: %s' % trigger.args[1]) + + +@plugin.event(sb.events.RPL_WELCOME) +@plugin.rule('.*') +def bot_events_connected(bot, trigger): + + # Handling for connection count + sb.events.dict["RPL_WELCOME_Count"] += 1 + if sb.events.dict["RPL_WELCOME_Count"] > 1: + sb.events.trigger(bot, sb.events.BOT_RECONNECTED, "Bot ReConnected to IRC") + else: + sb.events.trigger(bot, sb.events.BOT_WELCOME, "Welcome to the SpiceBot Events System") + + """For items tossed in a queue, this will trigger them accordingly""" + Thread(target=events_thread, args=(bot,)).start() + + +def events_thread(bot): + while True: + if len(sb.events.dict["trigger_queue"]): + pretriggerdict = sb.events.dict["trigger_queue"][0] + sb.events.dispatch(bot, pretriggerdict) + try: + del sb.events.dict["trigger_queue"][0] + except IndexError: + pass + + +@plugin.event(sb.events.BOT_WELCOME) +@plugin.rule('.*') +def bot_events_start(bot, trigger): + """This stage is redundant, but shows the system is working.""" + sb.events.trigger(bot, sb.events.BOT_READY, "Ready To Process module setup procedures") + + """Here, we wait until we are in at least one channel""" + while not len(list(bot.channels.keys())) > 0: + pass + sb.events.trigger(bot, sb.events.BOT_CONNECTED, "Bot Connected to IRC") + + +@sb.events.startup_check_ready() +@plugin.event(sb.events.BOT_READY) +@plugin.rule('.*') +def bot_events_startup_complete(bot, trigger): + """All events registered as required for startup have completed""" + sb.events.trigger(bot, sb.events.BOT_LOADED, "All registered modules setup procedures have completed") diff --git a/SpiceBotEvents/__init__.py b/SpiceBotEvents/__init__.py deleted file mode 100644 index 676934f..0000000 --- a/SpiceBotEvents/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -# coding=utf8 -"""SpiceBotSERV -A Niche Wrapper around Sopel -""" -from __future__ import unicode_literals, absolute_import, division, print_function - -from .welcome_setup import * -from .events import * -# from .startupmonologue import * diff --git a/SpiceBotEvents/events.py b/SpiceBotEvents/events.py deleted file mode 100644 index 3fbc06b..0000000 --- a/SpiceBotEvents/events.py +++ /dev/null @@ -1,62 +0,0 @@ -# coding=utf8 -from __future__ import unicode_literals, absolute_import, division, print_function -""" -This is the SpiceBot Events system. -""" -from threading import Thread -from sopel import plugin - -from sopel.externals.SpiceBot.SpiceBotCore import sb - - -@plugin.event(sb.events.BOT_WELCOME, sb.events.BOT_READY, sb.events.BOT_CONNECTED, sb.events.BOT_LOADED) -@plugin.rule('.*') -def bot_events_complete(bot, trigger): - """This is here simply to log to stderr that this was recieved.""" - sb.logger.info('SpiceBot_Events: %s' % trigger.args[1]) - - -@plugin.event(sb.events.RPL_WELCOME) -@plugin.rule('.*') -def bot_events_connected(bot, trigger): - - # Handling for connection count - sb.events.dict["RPL_WELCOME_Count"] += 1 - if sb.events.dict["RPL_WELCOME_Count"] > 1: - sb.events.trigger(bot, sb.events.BOT_RECONNECTED, "Bot ReConnected to IRC") - else: - sb.events.trigger(bot, sb.events.BOT_WELCOME, "Welcome to the SpiceBot Events System") - - """For items tossed in a queue, this will trigger them accordingly""" - Thread(target=events_thread, args=(bot,)).start() - - -def events_thread(bot): - while True: - if len(sb.events.dict["trigger_queue"]): - pretriggerdict = sb.events.dict["trigger_queue"][0] - sb.events.dispatch(bot, pretriggerdict) - try: - del sb.events.dict["trigger_queue"][0] - except IndexError: - pass - - -@plugin.event(sb.events.BOT_WELCOME) -@plugin.rule('.*') -def bot_events_start(bot, trigger): - """This stage is redundant, but shows the system is working.""" - sb.events.trigger(bot, sb.events.BOT_READY, "Ready To Process module setup procedures") - - """Here, we wait until we are in at least one channel""" - while not len(list(bot.channels.keys())) > 0: - pass - sb.events.trigger(bot, sb.events.BOT_CONNECTED, "Bot Connected to IRC") - - -@sb.events.startup_check_ready() -@plugin.event(sb.events.BOT_READY) -@plugin.rule('.*') -def bot_events_startup_complete(bot, trigger): - """All events registered as required for startup have completed""" - sb.events.trigger(bot, sb.events.BOT_LOADED, "All registered modules setup procedures have completed") diff --git a/SpiceBotEvents/welcome_setup.py b/SpiceBotEvents/welcome_setup.py deleted file mode 100644 index fcc5dc3..0000000 --- a/SpiceBotEvents/welcome_setup.py +++ /dev/null @@ -1,20 +0,0 @@ -# coding=utf8 -from __future__ import unicode_literals, absolute_import, division, print_function -""" -This is the SpiceBot Events system. -""" -from sopel import plugin - -from sopel.externals.SpiceBot.SpiceBotCore import sb - - -@plugin.event("001") -@plugin.rule('.*') -def welcome_setup_start(bot, trigger): - sb.comms.ircbackend_initialize(bot) - - -@plugin.event(sb.events.BOT_CONNECTED) -@plugin.rule('.*') -def bot_events_start_set_hostmask(bot, trigger): - sb.comms.hostmask_set(bot)