diff options
Diffstat (limited to 'modules/eval_python.py')
| -rw-r--r-- | modules/eval_python.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/modules/eval_python.py b/modules/eval_python.py index 86fe3db3..5fcdec4b 100644 --- a/modules/eval_python.py +++ b/modules/eval_python.py @@ -2,12 +2,24 @@ import html, socket from src import ModuleManager, utils EVAL_TEMPLATE = """ -import sys +import StringIO, sys + compiled = compile(sys.stdin.read(), "code", "single") -result = eval(compiled) -print("") + +old_stdout = sys.stdout +stdout = StringIO.StringIO() +sys.stdout = stdout + +try: + result = eval(compiled) +except Exception as e: + old_stdout.write(json.dumps({"success" False, "out": str(e)})) + sys.exit() + +stdout.write("\n") if not result == None: - sys.stdout.write(str(result)) + stdout.write(str(result)+"\n") +old_stdout.write(json.dumps({"success" True, "out": stdout.getvalue()})) """ EVAL_URL = "https://tpcg.tutorialspoint.com/tpcg.php" |
