|
@@ -70,17 +70,21 @@ class ChatChannel(Channel):
|
|
|
# 校验关键字
|
|
# 校验关键字
|
|
|
match_prefix = check_prefix(content, conf().get('group_chat_prefix'))
|
|
match_prefix = check_prefix(content, conf().get('group_chat_prefix'))
|
|
|
match_contain = check_contain(content, conf().get('group_chat_keyword'))
|
|
match_contain = check_contain(content, conf().get('group_chat_keyword'))
|
|
|
|
|
+ flag = False
|
|
|
if match_prefix is not None or match_contain is not None:
|
|
if match_prefix is not None or match_contain is not None:
|
|
|
|
|
+ flag = True
|
|
|
if match_prefix:
|
|
if match_prefix:
|
|
|
content = content.replace(match_prefix, '', 1).strip()
|
|
content = content.replace(match_prefix, '', 1).strip()
|
|
|
- elif context['msg'].is_at and not conf().get("group_at_off", False):
|
|
|
|
|
- logger.info("[WX]receive group at, continue")
|
|
|
|
|
|
|
+ if context['msg'].is_at:
|
|
|
|
|
+ logger.info("[WX]receive group at")
|
|
|
|
|
+ if not conf().get("group_at_off", False):
|
|
|
|
|
+ flag = True
|
|
|
pattern = f'@{self.name}(\u2005|\u0020)'
|
|
pattern = f'@{self.name}(\u2005|\u0020)'
|
|
|
content = re.sub(pattern, r'', content)
|
|
content = re.sub(pattern, r'', content)
|
|
|
- elif context["origin_ctype"] == ContextType.VOICE:
|
|
|
|
|
- logger.info("[WX]receive group voice, checkprefix didn't match")
|
|
|
|
|
- return None
|
|
|
|
|
- else:
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if not flag:
|
|
|
|
|
+ if context["origin_ctype"] == ContextType.VOICE:
|
|
|
|
|
+ logger.info("[WX]receive group voice, but checkprefix didn't match")
|
|
|
return None
|
|
return None
|
|
|
else: # 单聊
|
|
else: # 单聊
|
|
|
match_prefix = check_prefix(content, conf().get('single_chat_prefix'))
|
|
match_prefix = check_prefix(content, conf().get('single_chat_prefix'))
|
|
@@ -106,7 +110,6 @@ class ChatChannel(Channel):
|
|
|
|
|
|
|
|
return context
|
|
return context
|
|
|
|
|
|
|
|
- # 处理消息 TODO: 如果wechaty解耦,此处逻辑可以放置到父类
|
|
|
|
|
def _handle(self, context: Context):
|
|
def _handle(self, context: Context):
|
|
|
if context is None or not context.content:
|
|
if context is None or not context.content:
|
|
|
return
|
|
return
|