Pārlūkot izejas kodu

fix: escape regex pattern

lanvent 3 gadi atpakaļ
vecāks
revīzija
4af2c7f3d7
2 mainītis faili ar 4 papildinājumiem un 4 dzēšanām
  1. 2 2
      channel/chat_channel.py
  2. 2 2
      channel/wechat/wechaty_message.py

+ 2 - 2
channel/chat_channel.py

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

+ 2 - 2
channel/wechat/wechaty_message.py

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