mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-03-26 15:42:45 +08:00
feat: support receive_message event
This commit is contained in:
@@ -48,9 +48,6 @@ class ChatChannel(Channel):
|
||||
if first_in: # context首次传入时,receiver是None,根据类型设置receiver
|
||||
config = conf()
|
||||
cmsg = context['msg']
|
||||
if cmsg.from_user_id == self.user_id and not config.get('trigger_by_self', True):
|
||||
logger.debug("[WX]self message skipped")
|
||||
return None
|
||||
if context.get("isgroup", False):
|
||||
group_name = cmsg.other_user_nickname
|
||||
group_id = cmsg.other_user_id
|
||||
@@ -69,6 +66,13 @@ class ChatChannel(Channel):
|
||||
else:
|
||||
context['session_id'] = cmsg.other_user_id
|
||||
context['receiver'] = cmsg.other_user_id
|
||||
e_context = PluginManager().emit_event(EventContext(Event.ON_RECEIVE_MESSAGE, {'channel': self, 'context': context}))
|
||||
context = e_context['context']
|
||||
if e_context.is_pass() or context is None:
|
||||
return context
|
||||
if cmsg.from_user_id == self.user_id and not config.get('trigger_by_self', True):
|
||||
logger.debug("[WX]self message skipped")
|
||||
return None
|
||||
|
||||
# 消息内容匹配过程,并处理content
|
||||
if ctype == ContextType.TEXT:
|
||||
|
||||
@@ -4,7 +4,10 @@ from enum import Enum
|
||||
|
||||
|
||||
class Event(Enum):
|
||||
# ON_RECEIVE_MESSAGE = 1 # 收到消息
|
||||
ON_RECEIVE_MESSAGE = 1 # 收到消息
|
||||
"""
|
||||
e_context = { "channel": 消息channel, "context" : 本次消息的context}
|
||||
"""
|
||||
|
||||
ON_HANDLE_CONTEXT = 2 # 处理消息前
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user