diff options
| author | 2018-09-19 13:56:57 +0100 | |
|---|---|---|
| committer | 2018-09-19 14:14:51 +0100 | |
| commit | a0bb738abc2d4ac7cc20fd1619bdd9d4fbb4c1cf (patch) | |
| tree | bd59f8ac829c484a372816dc750a04777a21c33c /modules/eval.py | |
| parent | Add 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.py | 25 |
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) |
