1.存在匹配上的问题, 后期再进行修复, 目前治标

This commit is contained in:
2025-10-29 16:03:08 +08:00
parent 27aee22f62
commit 9718eb0614
2 changed files with 14 additions and 5 deletions

View File

@@ -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 的问题,以及@前缀处理不完整的问题
- 阻碍因素:无
- 状态:未确认
# 最终审查
[等待实施]

View File

@@ -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]]: