aboutsummaryrefslogtreecommitdiff
path: root/modules/eval.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-19 13:56:57 +0100
committerGravatar jesopo2018-09-19 14:14:51 +0100
commita0bb738abc2d4ac7cc20fd1619bdd9d4fbb4c1cf (patch)
treebd59f8ac829c484a372816dc750a04777a21c33c /modules/eval.py
parentAdd ModuleManager.BaseModule so modules don't *have* to implement __init__ (diff)
signature
Add eval.py
Diffstat (limited to 'modules/eval.py')
-rw-r--r--modules/eval.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/modules/eval.py b/modules/eval.py
new file mode 100644
index 00000000..f63c0297
--- /dev/null
+++ b/modules/eval.py
@@ -0,0 +1,25 @@
+import socket
+import Utils
+
+EVAL_URL = "https://eval.appspot.com/eval"
+
+class Module(object):
+ def __init__(self, bot, events, exports):
+ events.on("received.command.eval").hook(self.eval, min_args=1,
+ help="Evaluate a python statement", usage="<statement>")
+
+ def eval(self, event):
+ try:
+ code, page = Utils.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)