From 37179fc4d70d7696ba7053b629227ec39d4f28f1 Mon Sep 17 00:00:00 2001 From: passthem Date: Mon, 27 Oct 2025 15:31:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=98=BE=E7=A4=BA=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E8=AE=B0=E5=BD=95=E7=9A=84=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- konabot/plugins/kona_ph/__init__.py | 4 ++-- konabot/plugins/kona_ph/manager.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/konabot/plugins/kona_ph/__init__.py b/konabot/plugins/kona_ph/__init__.py index 8b53ea6..f1ea8ec 100644 --- a/konabot/plugins/kona_ph/__init__.py +++ b/konabot/plugins/kona_ph/__init__.py @@ -83,13 +83,13 @@ async def _(target: DepLongTaskTarget): uname = get_username(int(u), gid) t = d.strftime("%H:%M") tries = len(manager.submissions[p.raw_id][u]) - msg = msg.text(f"\n- {uname} [Solved at {t} in {tries} times]") + msg = msg.text(f"\n- {uname} [🎉 {t} 完成 | {tries} 提交]") for u in info.tried_users - set(info.success_users.keys()): uname = u if re.match(r"^\d+$", u): uname = get_username(int(u), gid) tries = len(manager.submissions[p.raw_id][u]) - msg = msg.text(f"\n- {uname} [Unsolved in {tries} times]") + msg = msg.text(f"\n- {uname} [💦 {tries} 提交]") await target.send_message(msg) diff --git a/konabot/plugins/kona_ph/manager.py b/konabot/plugins/kona_ph/manager.py index 44c2fd6..a284675 100644 --- a/konabot/plugins/kona_ph/manager.py +++ b/konabot/plugins/kona_ph/manager.py @@ -82,6 +82,7 @@ def create_admin_commands(): ), Subcommand("publish", Args["raw_id?", str], dest="publish"), Subcommand("preview", Args["raw_id", str], dest="preview"), + Subcommand("get-submits", Args["raw_id", str], dest="get-submits") ), rule=is_puzzle_manager, ) @@ -96,6 +97,7 @@ def create_admin_commands(): msg = msg.text("konaph my - 查看我的谜题列表\n") msg = msg.text("konaph modify - 查看如何修改谜题信息\n") msg = msg.text("konaph preview - 预览一个题目的效果,不会展示答案\n") + msg = msg.text("konaph get-submits - 获得题目的提交记录\n") if is_puzzle_admin(target): msg = msg.text("konaph all [--ready] - 查看所有谜题\n") @@ -339,4 +341,21 @@ def create_admin_commands(): return await target.send_message("你没有权限预览这个谜题") return await target.send_message(puzzle.get_unimessage()) + @cmd_admin.assign("get-submits") + async def _(target: DepLongTaskTarget, raw_id: str): + async with puzzle_manager() as manager: + puzzle = manager.puzzle_data.get(raw_id) + if puzzle is None: + return await target.send_message("没有这个谜题") + if not is_puzzle_admin(target) and target.target_id != puzzle.author_id: + return await target.send_message("你没有权限预览这个谜题") + + msg = UniMessage.text(f"==== {puzzle.title} 提交记录 ====\n\n") + submits = manager.submissions.get(raw_id, {}) + for uid, ls in submits.items(): + s = ', '.join((i.flag for i in ls)) + msg = msg.text(f"- {get_username(uid)}:{s}\n") + return await target.send_message(msg) + + return cmd_admin