aboutsummaryrefslogtreecommitdiff
path: root/modules/eval_python.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/eval_python.py')
-rw-r--r--modules/eval_python.py27
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)