aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-24 13:10:39 +0100
committerGravatar jesopo2018-09-24 13:10:39 +0100
commitb7f7c9342b7b23b5c04bc9974403e6e96ce8bec2 (patch)
tree73462913493ddaa5f058d5bb675c020eab7f4d85 /modules
parentMerge 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.py46
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", [])