From 81acd5ae49dda301ef753e0c5df56f27ebff5316 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Thu, 30 May 2019 15:22:17 -0400 Subject: [PATCH] test configure and setup migration --- sopel_modules/SpiceBot/Config.py | 7 +++++- sopel_modules/SpiceBot/__init__.py | 3 +++ sopel_modules/SpiceBot/configure.py | 22 ++++++++++++++++++ sopel_modules/SpiceBot/setup.py | 19 +++++++++++++++ .../Channels_Parsing.py | 23 ------------------- 5 files changed, 50 insertions(+), 24 deletions(-) create mode 100644 sopel_modules/SpiceBot/configure.py create mode 100644 sopel_modules/SpiceBot/setup.py diff --git a/sopel_modules/SpiceBot/Config.py b/sopel_modules/SpiceBot/Config.py index c7fe077..c145d87 100644 --- a/sopel_modules/SpiceBot/Config.py +++ b/sopel_modules/SpiceBot/Config.py @@ -36,10 +36,15 @@ class BotConfig(): if each_key.lower() not in self.dict[each_section.lower()].keys(): self.dict[each_section.lower()][each_key.lower()] = each_val + def define_section(self, name, cls_, validate=True): + return self.config.define_section(name, cls_, validate) + def __getattr__(self, name): ''' will only get called for undefined attributes ''' """We will try to find a core value, or return None""" - if name.lower() in self.dict["core"].keys(): + if hasattr(self.config.core, name): + return eval("self.config.core." + name) + elif name.lower() in self.dict["core"].keys(): return self.dict["core"][str(name).lower()] else: return None diff --git a/sopel_modules/SpiceBot/__init__.py b/sopel_modules/SpiceBot/__init__.py index 93f67c6..e7ffc2b 100644 --- a/sopel_modules/SpiceBot/__init__.py +++ b/sopel_modules/SpiceBot/__init__.py @@ -6,6 +6,9 @@ These are the core SpiceBot Classes This module contains references only for other modules to utilize. """ +from .configure import * +from .setup import * + from .Config import * from .Tools import * from .Logs import * diff --git a/sopel_modules/SpiceBot/configure.py b/sopel_modules/SpiceBot/configure.py new file mode 100644 index 0000000..ca4126b --- /dev/null +++ b/sopel_modules/SpiceBot/configure.py @@ -0,0 +1,22 @@ +# coding=utf8 +from __future__ import unicode_literals, absolute_import, division, print_function +"""Configuration for SpiceBot""" + +import sopel.module +from sopel.config.types import StaticSection, ValidatedAttribute, ListAttribute + + +class SpiceBot_Channels_MainSection(StaticSection): + announcenew = ValidatedAttribute('announcenew', default=False) + joinall = ValidatedAttribute('joinall', default=False) + operadmin = ValidatedAttribute('operadmin', default=False) + chanignore = ListAttribute('chanignore') + + +def configure(config): + + config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) + config.SpiceBot_Channels.configure_setting('announcenew', 'SpiceBot_Channels Announce New Channels') + config.SpiceBot_Channels.configure_setting('joinall', 'SpiceBot_Channels JOIN New Channels') + config.SpiceBot_Channels.configure_setting('operadmin', 'SpiceBot_Channels OPER ADMIN MODE') + config.SpiceBot_Channels.configure_setting('chanignore', 'SpiceBot_Channels Ignore JOIN for channels') diff --git a/sopel_modules/SpiceBot/setup.py b/sopel_modules/SpiceBot/setup.py new file mode 100644 index 0000000..8063962 --- /dev/null +++ b/sopel_modules/SpiceBot/setup.py @@ -0,0 +1,19 @@ +# coding=utf8 +from __future__ import unicode_literals, absolute_import, division, print_function +"""Configuration for SpiceBot""" + +import sopel.module + +from .Logs import logs +from .Events import events +from .Config import config as botconfig + +from .configure import SpiceBot_Channels_MainSection + + +def setup(bot): + + logs.log('SpiceBot_Channels', "Starting setup procedure") + events.startup_add([events.BOT_CHANNELS]) + bot.config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) + botconfig.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) diff --git a/sopel_modules/SpiceBot_Channels_Parsing/Channels_Parsing.py b/sopel_modules/SpiceBot_Channels_Parsing/Channels_Parsing.py index f497c3a..b33d9f0 100644 --- a/sopel_modules/SpiceBot_Channels_Parsing/Channels_Parsing.py +++ b/sopel_modules/SpiceBot_Channels_Parsing/Channels_Parsing.py @@ -4,7 +4,6 @@ from __future__ import unicode_literals, absolute_import, print_function, divisi # sopel imports import sopel.module -from sopel.config.types import StaticSection, ValidatedAttribute, ListAttribute import sopel_modules.SpiceBot as SpiceBot @@ -13,28 +12,6 @@ import spicemanip import time -class SpiceBot_Channels_MainSection(StaticSection): - announcenew = ValidatedAttribute('announcenew', default=False) - joinall = ValidatedAttribute('joinall', default=False) - operadmin = ValidatedAttribute('operadmin', default=False) - chanignore = ListAttribute('chanignore') - - -def configure(config): - config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) - config.SpiceBot_Channels.configure_setting('announcenew', 'SpiceBot_Channels Announce New Channels') - config.SpiceBot_Channels.configure_setting('joinall', 'SpiceBot_Channels JOIN New Channels') - config.SpiceBot_Channels.configure_setting('operadmin', 'SpiceBot_Channels OPER ADMIN MODE') - config.SpiceBot_Channels.configure_setting('chanignore', 'SpiceBot_Channels Ignore JOIN for channels') - - -def setup(bot): - SpiceBot.logs.log('SpiceBot_Channels', "Starting setup procedure") - SpiceBot.events.startup_add([SpiceBot.events.BOT_CHANNELS]) - bot.config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) - SpiceBot.config.config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) - - @sopel.module.event(SpiceBot.events.RPL_WELCOME) @sopel.module.rule('.*') def unkickable_bot(bot, trigger):