diff options
Diffstat (limited to 'ATRI/plugins/code_runner/data_source.py')
-rw-r--r-- | ATRI/plugins/code_runner/data_source.py | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/ATRI/plugins/code_runner/data_source.py b/ATRI/plugins/code_runner/data_source.py index 4338697..bbe0d2e 100644 --- a/ATRI/plugins/code_runner/data_source.py +++ b/ATRI/plugins/code_runner/data_source.py @@ -40,9 +40,10 @@ __doc__ = """ class CodeRunner(Service): + def __init__(self): Service.__init__(self, "在线跑代码", __doc__, rule=is_in_service("在线跑代码")) - + @staticmethod def help() -> str: return ( @@ -52,23 +53,23 @@ class CodeRunner(Service): "/code python\n" "print('hello world')" ) - + @staticmethod def list_supp_lang() -> str: msg0 = "咱现在支持的语言如下:\n" msg0 += ", ".join(map(str, SUPPORTED_LANGUAGES.keys())) return msg0 - + @staticmethod async def runner(msg: str): args = msg.split("\n") if not args: return "请检查键入内容..." - + lang = args[0].replace("\r", "") if lang not in SUPPORTED_LANGUAGES: return "该语言暂不支持..." - + del args[0] code = "\n".join(map(str, args)) url = RUN_API_URL_FORMAT.format(lang) @@ -83,14 +84,14 @@ class CodeRunner(Service): } ], "stdin": "", - "command": "", + "command": "" } - + try: res = await request.post(url, json=js) except RequestError: raise RequestError("Request failed!") - + payload = await res.json() sent = False for k in ["stdout", "stderr", "error"]: @@ -99,12 +100,12 @@ class CodeRunner(Service): lines, remained_lines = lines[:10], lines[10:] out = "\n".join(lines) out, remained_out = out[: 60 * 10], out[60 * 10 :] - + if remained_lines or remained_out: out += f"\n(太多了太多了...)" - + if out: return f"\n{k}:\n{out}" - + if not sent: - return "\n运行完成,没任何输出呢..." + return "\n运行完成,没任何输出呢..."
\ No newline at end of file |