diff options
| author | 2018-10-09 22:15:27 +0100 | |
|---|---|---|
| committer | 2018-10-09 22:15:27 +0100 | |
| commit | 88e523c3deaf6d4b95ad46a072a5f61211e5a87c (patch) | |
| tree | d43de00726a59628906f1445e9aee6aaafd02aa9 /modules/eval_lua.py | |
| parent | .kill() a process when it times out (diff) | |
| signature | ||
Add modules/eval_lua.py
Diffstat (limited to 'modules/eval_lua.py')
| -rw-r--r-- | modules/eval_lua.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/modules/eval_lua.py b/modules/eval_lua.py new file mode 100644 index 00000000..b3ff07d4 --- /dev/null +++ b/modules/eval_lua.py @@ -0,0 +1,26 @@ +import socket +from src import ModuleManager, utils + +EVAL_URL = "https://www.lua.org/cgi-bin/demo" + +class Module(ModuleManager.BaseModule): + _name = "Lua" + @utils.hook("received.command.lua", min_args=1) + def eval(self, event): + try: + page = utils.http.get_url(EVAL_URL, + post_params={"input": event["args"]}, + method="POST", + soup=True) + except socket.timeout: + event["stderr"].write("%s: eval timed out" % + event["user"].nickname) + return + + if page: + textareas = page.find_all("textarea") + if len(textareas) > 1: + out = textareas[1].text.strip() + event["stdout"].write("%s: %s" % (event["user"].nickname, out)) + else: + event["stderr"].write("%s: failed to eval" % event["user"].nickname) |
