diff options
| author | 2018-09-24 13:10:39 +0100 | |
|---|---|---|
| committer | 2018-09-24 13:10:39 +0100 | |
| commit | b7f7c9342b7b23b5c04bc9974403e6e96ce8bec2 (patch) | |
| tree | 73462913493ddaa5f058d5bb675c020eab7f4d85 /modules | |
| parent | Merge pull request #23 from dngfx/master (diff) | |
| signature | ||
Better communicate issues with load/unload/reload of modules
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/modules.py | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/modules/modules.py b/modules/modules.py index 109baeff..154a1765 100644 --- a/modules/modules.py +++ b/modules/modules.py @@ -1,10 +1,8 @@ - +import ModuleManager class Module(object): def __init__(self, bot, events, exports): self.bot = bot - self.module_name = False - self.silent = False events.on("received.command.loadmodule").hook(self.load, min_args=1, permission="load-module", help="Load a module", @@ -43,37 +41,35 @@ class Module(object): self.bot.modules.unload_module(name) event["stdout"].write("Unloaded '%s'" % name) - def reload(self, event): - name = self.module_name if self.module_name != False else event[ - "args_split"][0].lower() - if not name in self.bot.modules.modules: - if self.silent == False: - event["stderr"].write("Module '%s' isn't loaded" % name) - return + def _reload(self, name): self.bot.modules.unload_module(name) self.bot.modules.load_module(name) - if self.silent == False: - event["stdout"].write("Reloaded '%s'" % name) + def reload(self, event): + name = event["args_split"][0].lower() + try: + self._reload(name) + except ModuleManager.ModuleNotFoundException: + event["stderr"].write("Module '%s' isn't loaded" % name) + return + event["stdout"].write("Reloaded '%s'" % name) def reload_all(self, event): - modules_reloaded = [] - self.silent = True - - for name, value in self.bot.modules.modules.items(): - if name in modules_reloaded: - pass - - self.module_name = name - self.reload(event) - modules_reloaded.append(name) + reloaded = [] + failed = [] + for name in self.bot.modules.modules.keys(): + try: + self._reload(name) + except ModuleManager.ModuleNotFoundException: + failed.append + if not self._reload(event): + failed.append(name) + else: + reloaded.append(name) event["stdout"].write("Reloaded modules: %s" % \ " ".join(modules_reloaded)) - self.silent = False - self.module_name = False - def enable(self, event): name = event["args_split"][0].lower() blacklist = self.bot.get_setting("module-blacklist", []) |
