diff options
Diffstat (limited to 'modules/eval_python.py')
| -rw-r--r-- | modules/eval_python.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/modules/eval_python.py b/modules/eval_python.py new file mode 100644 index 00000000..2342e3e2 --- /dev/null +++ b/modules/eval_python.py @@ -0,0 +1,27 @@ +import socket +from src import ModuleManager, utils + +EVAL_URL = "https://eval.appspot.com/eval" + +class Module(ModuleManager.BaseModule): + _name = "Python" + @utils.hook("received.command.eval", min_args=1) + def eval(self, event): + """ + :help: Evaluate a python statement + :usage: <statement> + """ + try: + code, page = utils.http.get_url(EVAL_URL, get_params={ + "statement": event["args"]}, code=True) + except socket.timeout: + event["stderr"].write("%s: eval timed out" % + event["user"].nickname) + return + + if not page == None and code == 200: + event["stdout"].write("%s: %s" % (event["user"].nickname, + page)) + else: + event["stderr"].write("%s: failed to eval" % + event["user"].nickname) |
