From 74bf4d763af4f412db8f9a45876ebd2f5108e31d Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Tue, 14 May 2019 12:57:31 -0400 Subject: [PATCH] Better dynamic creation of event numbers --- sopel_modules/SpiceBot_Channels/Channels.py | 3 +-- sopel_modules/SpiceBot_Events/System.py | 23 ++++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/sopel_modules/SpiceBot_Channels/Channels.py b/sopel_modules/SpiceBot_Channels/Channels.py index 359c637..34db283 100644 --- a/sopel_modules/SpiceBot_Channels/Channels.py +++ b/sopel_modules/SpiceBot_Channels/Channels.py @@ -6,7 +6,7 @@ from __future__ import unicode_literals, absolute_import, print_function, divisi import sopel.module from sopel.config.types import StaticSection, ValidatedAttribute, ListAttribute -from sopel_modules.SpiceBot_Events.System import bot_events_startup_register, bot_events_recieved, bot_events_trigger, botevents, assign_event_number +from sopel_modules.SpiceBot_Events.System import bot_events_startup_register, bot_events_recieved, bot_events_trigger, botevents from sopel_modules.SpiceBot_SBTools import ( join_all_channels, chanadmin_all_channels, channel_list_current, @@ -35,7 +35,6 @@ def configure(config): def setup(bot): bot_logging(bot, 'SpiceBot_Channels', "Starting setup procedure") - assign_event_number(bot, "BOT_CHANNELS") bot_events_startup_register(bot, [botevents.BOT_CHANNELS]) bot.config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) diff --git a/sopel_modules/SpiceBot_Events/System.py b/sopel_modules/SpiceBot_Events/System.py index 50adf3d..a3ea46c 100644 --- a/sopel_modules/SpiceBot_Events/System.py +++ b/sopel_modules/SpiceBot_Events/System.py @@ -40,8 +40,7 @@ def bot_events_trigger(bot, number, message): def bot_events_setup_check(bot): if "SpiceBot_Events" not in bot.memory: - bot.memory["SpiceBot_Events"] = {"triggers": {}, "startup": [], "loaded": [], "queue": [], - "usednumbers": [botevents.BOT_WELCOME, botevents.BOT_READY, botevents.BOT_CONNECTED, botevents.BOT_LOADED]} + bot.memory["SpiceBot_Events"] = {"triggers": {}, "startup": [], "loaded": [], "queue": []} def bot_events_check(bot, listreq): @@ -92,14 +91,6 @@ def bot_events_startup_check(bot): return True -def assign_event_number(bot, eventname): - eventnumber = 0 - while not eventnumber and eventnumber not in bot.memory["SpiceBot_Events"]["usednumbers"]: - eventnumber = randint(2000, 9999) - exec("botevents." + str(eventname).upper() + " = " + str(eventnumber)) - return eventnumber - - class botevents(object): """An dynamic listing of all the notable Bot numeric events. @@ -112,7 +103,19 @@ class botevents(object): rather than ``@module.event('1001')`` """ + usednumbers = [] + BOT_WELCOME = '1001' BOT_READY = '1002' BOT_CONNECTED = '1003' BOT_LOADED = '1004' + + def __getattr__(self, name): + if hasattr(self, name): + return self.__getattribute__(name) + else: + eventnumber = 0 + while not eventnumber and eventnumber not in self.usednumbers: + eventnumber = randint(2000, 9999) + exec("self." + str(name).upper() + " = " + str(eventnumber)) + return eventnumber