Просмотр исходного кода

feat: support receive_message event

master
lanvent 1 год назад
Родитель
Сommit
9cef559a05
2 измененных файлов: 11 добавлений и 4 удалений
  1. +7
    -3
      channel/chat_channel.py
  2. +4
    -1
      plugins/event.py

+ 7
- 3
channel/chat_channel.py Просмотреть файл

@@ -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
- 1
plugins/event.py Просмотреть файл

@@ -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 # 处理消息前
"""


Загрузка…
Отмена
Сохранить