From: zonidjan Date: Mon, 14 Dec 2015 14:00:10 +0000 (-0600) Subject: fix bug in determining where to send reply X-Git-Url: https://jfr.im/git/erebus.git/commitdiff_plain/4df64299d7751fb90a9cf5e2964e9bcc365bcc3e?ds=inline;hp=c715235b70fcbdae42cdf092d7256737b89d86ef fix bug in determining where to send reply --- diff --git a/modules/control.py b/modules/control.py index 0448c49..3befa4d 100644 --- a/modules/control.py +++ b/modules/control.py @@ -1,5 +1,5 @@ # Erebus IRC bot - Author: Erebus Team -# !EVAL and !EXEC commands +# Various highly recommended "control" commands. # This file is released into the public domain; see http://unlicense.org/ # module info @@ -25,3 +25,38 @@ import ctlmod def cmd_die(bot, user, chan, realtarget, *args): sys.exit(0) os._exit(0) + +@lib.hook('modload', needchan=False, glevel=lib.MANAGER) +@lib.argsEQ(1) +def cmd_modload(bot, user, chan, realtarget, *args): + okay = ctlmod.load(bot.parent, args[0]) + if okay: + bot.msg(user, "Loaded %s" % (args[0])) + else: + bot.msg(user, "Error loading %s: %r" % (args[0], okay)) + +@lib.hook('modunload', needchan=False, glevel=lib.MANAGER) +@lib.argsEQ(1) +def cmd_modunload(bot, user, chan, realtarget, *args): + okay = ctlmod.unload(bot.parent, args[0]) + if okay: + bot.msg(user, "Unloaded %s" % (args[0])) + else: + bot.msg(user, "Error unloading %s: %r" % (args[0], okay)) + +@lib.hook('modreload', needchan=False, glevel=lib.MANAGER) +@lib.argsEQ(1) +def cmd_modreload(bot, user, chan, realtarget, *args): + okay = ctlmod.reloadmod(bot.parent, args[0]) + if okay: + bot.msg(user, "Reloaded %s" % (args[0])) + else: + bot.msg(user, "Error occurred: %r" % (okay)) + +@lib.hook('modlist', needchan=False, glevel=lib.STAFF) +@lib.argsEQ(0) +def cmd_modlist(bot, user, chan, realtarget, *args): + mods = ctlmod.modules + for mod in mods.itervalues(): + bot.msg(user, "- %s %r" % (mod.__name__, mod)) + bot.msg(user, "Done.") diff --git a/modules/eval.py b/modules/eval.py index 6134468..d248b53 100644 --- a/modules/eval.py +++ b/modules/eval.py @@ -27,7 +27,7 @@ def module(name): @lib.hook('eval', needchan=False, glevel=lib.MANAGER) @lib.argsGE(1) def cmd_eval(bot, user, chan, realtarget, *args): - if chan is not None: replyto = chan + if realtarget == chan.name: replyto = chan else: replyto = user try: ret = eval(' '.join(args)) @@ -39,7 +39,7 @@ def cmd_eval(bot, user, chan, realtarget, *args): @lib.hook('exec', needchan=False, glevel=lib.MANAGER) @lib.argsGE(1) def cmd_exec(bot, user, chan, realtarget, *args): - if chan is not None: replyto = chan + if realtarget == chan.name: replyto = chan else: replyto = user try: exec ' '.join(args) diff --git a/modules/foo.py b/modules/foo.py index 8063afb..9dbf29f 100644 --- a/modules/foo.py +++ b/modules/foo.py @@ -19,7 +19,7 @@ modstop = lib.modstop # module code @lib.hook('test', needchan=False) def cmd_gtest(bot, user, chan, realtarget, *args): - if chan is not None: replyto = chan + if realtarget == chan.name: replyto = chan else: replyto = user bot.msg(replyto, "You said: %s" % (' '.join([str(arg) for arg in args]))) diff --git a/modules/module.py b/modules/module.py deleted file mode 100644 index bcccaa2..0000000 --- a/modules/module.py +++ /dev/null @@ -1,55 +0,0 @@ -# Erebus IRC bot - Author: Erebus Team -# module control through irc -# This file is released into the public domain; see http://unlicense.org/ - -# module info -modinfo = { - 'author': 'Erebus Team', - 'license': 'public domain', - 'compatible': [1], # compatible module API versions - 'depends': [], # other modules required to work properly? -} - -# preamble -import modlib -lib = modlib.modlib(__name__) -modstart = lib.modstart -modstop = lib.modstop - -# module code -import ctlmod - -@lib.hook('modload', needchan=False, glevel=lib.MANAGER) -@lib.argsEQ(1) -def cmd_modload(bot, user, chan, realtarget, *args): - okay = ctlmod.load(bot.parent, args[0]) - if okay: - bot.msg(user, "Loaded %s" % (args[0])) - else: - bot.msg(user, "Error loading %s: %r" % (args[0], okay)) - -@lib.hook('modunload', needchan=False, glevel=lib.MANAGER) -@lib.argsEQ(1) -def cmd_modunload(bot, user, chan, realtarget, *args): - okay = ctlmod.unload(bot.parent, args[0]) - if okay: - bot.msg(user, "Unloaded %s" % (args[0])) - else: - bot.msg(user, "Error unloading %s: %r" % (args[0], okay)) - -@lib.hook('modreload', needchan=False, glevel=lib.MANAGER) -@lib.argsEQ(1) -def cmd_modreload(bot, user, chan, realtarget, *args): - okay = ctlmod.reloadmod(bot.parent, args[0]) - if okay: - bot.msg(user, "Reloaded %s" % (args[0])) - else: - bot.msg(user, "Error occurred: %r" % (okay)) - -@lib.hook('modlist', needchan=False, glevel=lib.STAFF) -@lib.argsEQ(0) -def cmd_modlist(bot, user, chan, realtarget, *args): - mods = ctlmod.modules - for mod in mods.itervalues(): - bot.msg(user, "- %s %r" % (mod.__name__, mod)) - bot.msg(user, "Done.") diff --git a/modules/resources.py b/modules/resources.py index 110b4d5..1a4e3c5 100644 --- a/modules/resources.py +++ b/modules/resources.py @@ -21,7 +21,7 @@ import resource @lib.hook('ram', needchan=False, glevel=lib.MANAGER) def cmd_ram(bot, user, chan, realtarget, *args): - if chan is not None: replyto = chan + if realtarget == chan.name: replyto = chan else: replyto = user try: @@ -33,7 +33,7 @@ def cmd_ram(bot, user, chan, realtarget, *args): @lib.hook('resources', needchan=False, glevel=lib.MANAGER) def cmd_resources(bot, user, chan, realtarget, *args): - if chan is not None: replyto = chan + if realtarget == chan.name: replyto = chan else: replyto = user try: