diff options
Diffstat (limited to 'modules/set.py')
| -rw-r--r-- | modules/set.py | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/modules/set.py b/modules/set.py index 23abea9b..a389cc8b 100644 --- a/modules/set.py +++ b/modules/set.py @@ -1,15 +1,9 @@ class Module(object): - def __init__(self, bot, events): + def __init__(self, bot, events, exports): self.bot = bot - self.settings = {} - self.channel_settings = {} - - events.on("postboot").on("configure").on("set").hook( - self.postboot_set, replay=True) - events.on("postboot").on("configure").on("channelset" - ).hook(self.postboot_channelset, replay=True) + self.exports = exports events.on("received").on("command").on("set").hook( self.set, help="Set a specified user setting", @@ -31,23 +25,15 @@ class Module(object): help="Get a specified setting for the current channel", usage="<setting>", min_args=1, require_mode="o") - def _postboot_set(self, settings, event): - settings[event["setting"]] = {} - settings[event["setting"]]["validate"] = event.get( - "validate", lambda s: s) - settings[event["setting"]]["help"] = event.get("help", - "") - def postboot_set(self, event): - self._postboot_set(self.settings, event) - def postboot_channelset(self, event): - self._postboot_set(self.channel_settings, event) - def _set(self, settings, event, target): + settings_dict = dict([(setting["setting"], setting + ) for setting in settings]) if len(event["args_split"]) > 1: setting = event["args_split"][0].lower() - if setting in settings: + if setting in settings_dict: value = " ".join(event["args_split"][1:]) - value = settings[setting]["validate"](value) + value = settings_dict[setting].get("validate", + lambda x: x)(value) if not value == None: target.set_setting(setting, value) event["stdout"].write("Saved setting") @@ -59,12 +45,13 @@ class Module(object): event["stderr"].write("Please provide a value") else: event["stdout"].write("Available settings: %s" % ( - ", ".join(settings.keys()))) + ", ".join(settings_dict.keys()))) def set(self, event): - self._set(self.settings, event, event["user"]) + self._set(self.exports.get_all("set"), event, event["user"]) def channel_set(self, event): - self._set(self.channel_settings, event, event["target"]) + self._set(self.exports.get_all("channelset"), event, + event["target"]) def _get(self, event, setting, qualifier, value): if not value == None: |
