diff options
Diffstat (limited to 'ATRI/plugins/code_runner')
-rw-r--r-- | ATRI/plugins/code_runner/__init__.py | 7 | ||||
-rw-r--r-- | ATRI/plugins/code_runner/data_source.py | 25 |
2 files changed, 16 insertions, 16 deletions
diff --git a/ATRI/plugins/code_runner/__init__.py b/ATRI/plugins/code_runner/__init__.py index 3f5697b..dfe6162 100644 --- a/ATRI/plugins/code_runner/__init__.py +++ b/ATRI/plugins/code_runner/__init__.py @@ -13,16 +13,15 @@ _flmt_notice = choice(["慢...慢一..点❤", "冷静1下", "歇会歇会~~"]) code_runner = CodeRunner().on_command("/code", "在线运行一段代码,帮助:/code help") - @code_runner.handle() async def _code_runner(bot: Bot, event: MessageEvent): user_id = event.get_user_id() if not _flmt.check(user_id): await code_runner.finish(_flmt_notice) - + msg = str(event.get_message()) args = msg.split("\n") - + if not args: content = f"> {MessageSegment.at(user_id)}\n" + "请键入 /code help 以获取帮助~!" elif args[0] == "help": @@ -31,6 +30,6 @@ async def _code_runner(bot: Bot, event: MessageEvent): content = f"> {MessageSegment.at(user_id)}\n" + CodeRunner().list_supp_lang() else: content = MessageSegment.at(user_id) + await CodeRunner().runner(msg) - + _flmt.start_cd(user_id) await code_runner.finish(Message(content)) 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 |