浏览代码

fix: escape regex patterns when matching name

lanvent 3 年之前
父节点
当前提交
361f599df0
共有 2 个文件被更改,包括 2 次插入2 次删除
  1. 1 1
      channel/chat_channel.py
  2. 1 1
      channel/wechat/wechaty_message.py

+ 1 - 1
channel/chat_channel.py

@@ -115,7 +115,7 @@ class ChatChannel(Channel):
                     if not conf().get("group_at_off", False):
                         flag = True
                     pattern = f"@{self.name}(\u2005|\u0020)"
-                    content = re.sub(pattern, r"", content)
+                    content = re.sub(re.escape(pattern), r"", content)
 
                 if not flag:
                     if context["origin_ctype"] == ContextType.VOICE:

+ 1 - 1
channel/wechat/wechaty_message.py

@@ -87,7 +87,7 @@ class WechatyMessage(ChatMessage, aobject):
             if not self.is_at:  # 有时候复制粘贴的消息,不算做@,但是内容里面会有@xxx,这里做一下兼容
                 name = wechaty_msg.wechaty.user_self().name
                 pattern = f"@{name}(\u2005|\u0020)"
-                if re.search(pattern, self.content):
+                if re.search(re.escape(pattern), self.content):
                     logger.debug(f"wechaty message {self.msg_id} include at")
                     self.is_at = True