Skip to content

Commit

Permalink
fixed #31 ,fixed #34
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnRichard4096 committed Feb 26, 2025
1 parent 92970fa commit 4f31acd
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 24 deletions.
115 changes: 92 additions & 23 deletions src/nonebot_plugin_suggarchat/event.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,15 +109,15 @@ def __init__(
:param send_message: 发送的模型的上下文
"""
# 初始化事件类型为none
self.__event_type = EventType().none()
self._event_type = EventType().none()
# 保存NoneBot事件对象
self.__nbevent = nbevent
self._nbevent = nbevent
# 初始化模型响应文本
self.__modelResponse: str = model_response
self._modelResponse: str = model_response
# 初始化用户ID
self.__user_id: int = user_id
self._user_id: int = user_id
# 初始化要发送的消息内容
self.__send_message: list = send_message
self._send_message: list = send_message

def __int__(self):
"""
Expand Down Expand Up @@ -150,24 +150,24 @@ def __str__(self):
"""
返回SuggarEvent对象的字符串表示
"""
return f"SUGGAREVENT({self.__event_type},{self.__nbevent},{self.__modelResponse},{self.__user_id},{self.__send_message})"

return f"SUGGAREVENT({self._event_type},{self._nbevent},{self._modelResponse},{self._user_id},{self._send_message})"
@property
def event_type(self) -> str:
"""
获取事件类型
:return: 事件类型字符串
"""
return self.__event_type
return self._event_type

def get_nonebot_event(self) -> PokeNotifyEvent:
"""
获取NoneBot事件对象
:return: NoneBot事件对象
"""
return self.__nbevent
return self._nbevent

@property
def message(self) -> list:
Expand All @@ -176,7 +176,7 @@ def message(self) -> list:
:return: 消息内容
"""
return self.__send_message
return self._send_message

@property
def user_id(self) -> int:
Expand All @@ -185,7 +185,7 @@ def user_id(self) -> int:
:return: 用户ID
"""
return self.__user_id
return self._user_id

@property
def model_response(self) -> str:
Expand All @@ -194,15 +194,15 @@ def model_response(self) -> str:
:return: 模型响应文本
"""
return self.__modelResponse
return self._modelResponse

def get_send_message(self) -> list:
"""
获取传入到模型的上下文
:return: 消息内容
"""
return self.__send_message
return self._send_message

def get_event_type(self) -> str:
"""
Expand All @@ -218,23 +218,23 @@ def get_model_response(self) -> str:
:return: 模型响应文本
"""
return self.__modelResponse
return self._modelResponse

def get_nonebot_event(self) -> BaseEvent:
"""
获取NoneBot事件对象
:return: NoneBot事件对象
"""
return self.__nbevent
return self._nbevent

def get_user_id(self) -> int:
"""
获取用户ID
:return: 用户ID
"""
return self.__user_id
return self._user_id

def get_event_on_location(self):
"""
Expand Down Expand Up @@ -275,7 +275,7 @@ def __init__(
send_message=send_message,
)
# 初始化事件类型为聊天事件
self.__event_type = EventType().chat()
self._event_type = EventType().chat()

def __str__(self):
"""
Expand All @@ -284,7 +284,7 @@ def __str__(self):
返回:
字符串,包含事件类型、消息事件、模型响应、用户ID和发送到模型的上下文信息。
"""
return f"SUGGARCHATEVENT({self.__event_type},{self.__nbevent},{self.__modelResponse},{self.__user_id},{self.__send_message})"
return f"SUGGARCHATEVENT({self._event_type},{self._nbevent},{self._modelResponse},{self._user_id},{self._send_message})"

@override
def get_event_type(self) -> str:
Expand All @@ -295,7 +295,7 @@ def get_event_type(self) -> str:
字符串,表示事件类型为聊天事件。
"""
return EventType().chat()

@override
@property
def event_type(self) -> str:
"""
Expand All @@ -314,7 +314,7 @@ def get_event_on_location(self):
返回:
字符串,如果是群聊消息事件,则返回"group",否则返回"private"。
"""
if isinstance(self.__nbevent, GroupMessageEvent):
if isinstance(self._nbevent, GroupMessageEvent):
return "group"
else:
return "private"
Expand Down Expand Up @@ -345,12 +345,12 @@ def __init__(
user_id=user_id,
send_message=send_message,
)
self.__event_type = EventType().poke()
self._event_type = EventType().poke()

def __str__(self):
# 重写__str__方法,返回PokeEvent的字符串表示
return f"SUGGARPOKEEVENT({self.__event_type},{self.__nbevent},{self.__modelResponse},{self.__user_id},{self.__send_message})"

return f"SUGGARPOKEEVENT({self._event_type},{self._nbevent},{self._modelResponse},{self._user_id},{self._send_message})"
@override
@property
def event_type(self) -> str:
# event_type属性,返回戳一戳事件类型
Expand All @@ -369,6 +369,75 @@ def get_event_on_location(self):
else:
return "private"

class BeforePokeEvent(PokeEvent):
"""
继承自PokeEvent的BeforePokeEvent类,用于处理调用模型之前的事件,通常用于依赖注入或权限控制的写法中。
参数:
- nbevent: PokeNotifyEvent类型,表示戳一戳通知事件。
- send_message: list 发送到模型的上下文。
- model_response: str类型,模型的响应。
- user_id: int类型,用户ID。
"""
def __init__(
self,
nbevent: PokeNotifyEvent,
send_message: list,
model_response: str,
user_id: int,
):
# 初始化BeforePokeEvent类,并设置相关属性
super().__init__(
model_response=model_response,
nbevent=nbevent,
user_id=user_id,
send_message=send_message,
)
self._event_type = EventType().before_poke()
@override
@property
def event_type(self) -> str:
# event_type属性,返回戳一戳事件类型
return self._event_type

@override
def get_event_type(self) -> str:
# 重写get_event_type方法,返回戳一戳事件类型
return self._event_type

class BeforeChatEvent(ChatEvent):
"""
继承自ChatEvent的BeforeChatEvent类,用于处理调用模型之前的事件,通常用于依赖注入或权限控制的写法中。
参数:
- nbevent: MessageEvent类型,表示消息事件。
- send_message: list 发送到模型的上下文。
- model_response: str类型,模型的响应。
- user_id: int类型,用户ID。
"""
def __init__(
self,
nbevent: MessageEvent,
send_message: list,
model_response: str,
user_id: int,
):
# 初始化BeforeChatEvent类,并设置相关属性
super().__init__(
model_response=model_response,
nbevent=nbevent,
user_id=user_id,
send_message=send_message,
)
self._event_type = EventType().before_chat()
@override
@property
def event_type(self) -> str:
# event_type属性,返回聊天事件类型
return self._event_type
@override
def get_event_type(self) -> str:
# 重写get_event_type方法,返回聊天事件类型
return self._event_type

class FinalObject:
"""
Expand Down
2 changes: 1 addition & 1 deletion src/nonebot_plugin_suggarchat/matcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ async def trigger_event(self, event: SuggarEvent, *args, **kwargs) -> SuggarEven
- **kwargs: 关键字参数,可能包含事件相关数据。
- *args: 可变参数,可能包含事件相关数据。
"""
event_type = event.get_event_type() # 获取事件类型
event_type = self.event_type # 获取事件类型
self.event = event
self.processing_message = event.message
logger.info(f"开始为这个类型 {event_type} 的事件运行处理。")
Expand Down

0 comments on commit 4f31acd

Please sign in to comment.