]>
jfr.im git - erebus.git/blob - modules/eval.py
1 # Erebus IRC bot - Author: Erebus Team
2 # vim: fileencoding=utf-8
3 # !EVAL and !EXEC commands
4 # This file is released into the public domain; see http://unlicense.org/
8 'author': 'Erebus Team',
9 'license': 'public domain',
17 lib
= modlib
.modlib(__name__
)
18 modstart
= lib
.modstart
29 @lib.hook('eval', needchan
=False, wantchan
=True, glevel
=lib
.OWNER
)
30 @lib.help("<python>", "eval")
32 def cmd_eval(bot
, user
, chan
, realtarget
, *args
):
33 if chan
is not None: replyto
= chan
36 try: ret
= eval(' '.join(args
))
37 except Exception: bot
.msg(replyto
, "Error: %s %s" % (sys
.exc_info()[0], sys
.exc_info()[1]))
38 else: bot
.msg(replyto
, "Done: %r" % (ret
,))
41 @lib.hook('exec', needchan
=False, wantchan
=True, glevel
=lib
.OWNER
)
42 @lib.help("<python>", "exec")
44 def cmd_exec(bot
, user
, chan
, realtarget
, *args
):
45 if chan
is not None: replyto
= chan
48 try: exec(' '.join(args
))
49 except Exception: bot
.msg(replyto
, "Error: %s %s" % (sys
.exc_info()[0], sys
.exc_info()[1]))
50 else: bot
.msg(replyto
, "Done.")
52 @lib.hook('exception', needchan
=False, glevel
=lib
.OWNER
)
53 @lib.help(None, "cause an exception")
54 def cmd_exception(*args
, **kwargs
):