# module code
import sys
+import ctlmod
+
+
+def module(name):
+ return lib.mod(name)
@lib.hook('eval', needchan=False, glevel=lib.MANAGER)
+@lib.help("<python>", "eval")
@lib.argsGE(1)
def cmd_eval(bot, user, chan, realtarget, *args):
- if chan is not None: replyto = chan
+ if chan is not None and realtarget == chan.name: replyto = chan
else: replyto = user
try: ret = eval(' '.join(args))
- except SystemExit: raise
- except: bot.msg(replyto, "Error (%s): %s" % (sys.exc_info()[0], sys.exc_info()[1]))
- else: bot.msg(replyto, "Done: %r" % (ret))
+ except Exception: bot.msg(replyto, "Error: %s %s" % (sys.exc_info()[0], sys.exc_info()[1]))
+ else: bot.msg(replyto, "Done: %r" % (ret,))
@lib.hook('exec', needchan=False, glevel=lib.MANAGER)
+@lib.help("<python>", "exec")
@lib.argsGE(1)
def cmd_exec(bot, user, chan, realtarget, *args):
- if chan is not None: replyto = chan
+ if chan is not None and realtarget == chan.name: replyto = chan
else: replyto = user
try: exec ' '.join(args)
- except SystemExit: raise
- except: bot.msg(replyto, "Error: %s %s" % (sys.exc_info()[0], sys.exc_info()[1]))
+ except Exception: bot.msg(replyto, "Error: %s %s" % (sys.exc_info()[0], sys.exc_info()[1]))
else: bot.msg(replyto, "Done.")
+
+@lib.hook('exception', glevel=lib.OWNER)
+@lib.help(None, "cause an exception")
+def cmd_exception(*args, **kwargs):
+ raise Exception()