From 9718eb0614db68ffb32aa158610fe9c0b442ea25 Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Wed, 29 Oct 2025 16:03:08 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AD=98=E5=9C=A8=E5=8C=B9=E9=85=8D=E4=B8=8A?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98,=20=E5=90=8E=E6=9C=9F=E5=86=8D?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E4=BF=AE=E5=A4=8D,=20=E7=9B=AE=E5=89=8D?= =?UTF-8?q?=E6=B2=BB=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tasks/2025-10-29_1_add-user-register.md | 9 +++++++++ utils/parser.py | 10 +++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.tasks/2025-10-29_1_add-user-register.md b/.tasks/2025-10-29_1_add-user-register.md index 666665b..e8537ba 100644 --- a/.tasks/2025-10-29_1_add-user-register.md +++ b/.tasks/2025-10-29_1_add-user-register.md @@ -204,6 +204,15 @@ def _process_gift_command(self, args: str, sender_id: int) -> str: - 阻碍因素:无 - 状态:未确认 +## 2025-10-29_16:00:48 +- 已修改:utils/parser.py +- 更改: + - 调整 COMMAND_MAP 顺序,将 .register 放在 .r 之前(避免前缀匹配冲突) + - 修复 AT_PATTERN 正则表达式:从 `@\s*\S+\s+(.+)` 改为 `@[^\s]+\s+(.+)`(正确提取@后的完整指令) +- 原因:修复 .register 被错误识别为 dice 的问题,以及@前缀处理不完整的问题 +- 阻碍因素:无 +- 状态:未确认 + # 最终审查 [等待实施] diff --git a/utils/parser.py b/utils/parser.py index a21f466..d10e69c 100644 --- a/utils/parser.py +++ b/utils/parser.py @@ -11,6 +11,10 @@ class CommandParser: # 指令映射表 COMMAND_MAP = { + # 用户注册系统(必须在骰娘之前) + '.register': 'register', + '.注册': 'register', + # 骰娘 '.r': 'dice', '.roll': 'dice', @@ -63,14 +67,10 @@ class CommandParser: # 统计 '.stats': 'stats', '.统计': 'stats', - - # 用户注册系统 - '.register': 'register', - '.注册': 'register', } # 机器人名称模式(用于从@消息中提取) - AT_PATTERN = re.compile(r'@\s*\S+\s+(.+)', re.DOTALL) + AT_PATTERN = re.compile(r'@[^\s]+\s+(.+)', re.DOTALL) @classmethod def parse(cls, content: str) -> Optional[Tuple[str, str]]: