diff options
| -rw-r--r-- | wmd/actions/modules.py | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/wmd/actions/modules.py b/wmd/actions/modules.py index 3431ab6..f44fe4e 100644 --- a/wmd/actions/modules.py +++ b/wmd/actions/modules.py | |||
| @@ -10,22 +10,28 @@ class ReloadModule(Action): | |||
| 10 | args = obj_data.params.split(" ") | 10 | args = obj_data.params.split(" ") |
| 11 | if "PRIVMSG" in obj_data.command and "RELOADMODULE" in args[1].upper(): | 11 | if "PRIVMSG" in obj_data.command and "RELOADMODULE" in args[1].upper(): |
| 12 | 12 | ||
| 13 | class_name = args[2] | 13 | module_name, class_name = args[2].rsplit('.', 1) |
| 14 | 14 | ||
| 15 | if not module in irc.actions: | 15 | |
| 16 | irc.privmsg(username, "Invalid Module: %s") | 16 | if not module_name in irc.actions: |
| 17 | irc.privmsg(username, "Invalid Module: %s" % module_name) | ||
| 17 | return | 18 | return |
| 18 | elif module == self.__class__.__name__: | 19 | elif not class_name in irc.actions[module_name][1]: |
| 20 | irc.privmsg(self, username, "Invalid Plugin" % class_name) | ||
| 21 | elif class_name == self.__class__.__name__: | ||
| 19 | irc.privmsg(username, "Unable to reload self. Try restarting") | 22 | irc.privmsg(username, "Unable to reload self. Try restarting") |
| 20 | return | 23 | return |
| 21 | module_class = irc.actions[module].__module__ | ||
| 22 | module_path = module_class + '.' + module | ||
| 23 | 24 | ||
| 24 | print dir(irc.actions[module]) | 25 | reload(irc.actions[module_name][0]) |
| 26 | try: | ||
| 27 | classz = getattr(irc.actions[module_name][0], class_name) | ||
| 28 | except AttributeError: | ||
| 29 | self.log("Class does not exist in module") | ||
| 30 | return | ||
| 25 | 31 | ||
| 26 | #reload(module_class) | 32 | irc.actions[module_name][1][class_name] = classz() |
| 27 | 33 | ||
| 28 | msg = "Reloaded %s" % (module_path,) | 34 | msg = "Reloaded %s.%s" % (module_name, class_name) |
| 29 | self.log(msg) | 35 | self.log(msg) |
| 30 | irc.privmsg(username, msg) | 36 | irc.privmsg(username, msg) |
| 31 | 37 | ||