59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
from dataclasses import dataclass
|
||
from typing import Dict, Any, Optional
|
||
from datetime import datetime
|
||
|
||
from base.event_system.event_manager import Event
|
||
|
||
|
||
@dataclass
|
||
class PluginCallStartEvent(Event):
|
||
"""插件调用开始事件"""
|
||
plugin_name: str # 插件名称
|
||
command: str # 触发的命令
|
||
full_command: str # 完整命令内容
|
||
user_id: str # 用户ID
|
||
group_id: Optional[str] = None # 群组ID,私聊为None
|
||
is_group: bool = False # 是否群聊
|
||
message: Dict[str, Any] = None # 原始消息内容
|
||
timestamp: datetime = None # 事件时间戳
|
||
|
||
def __post_init__(self):
|
||
if self.timestamp is None:
|
||
self.timestamp = datetime.now()
|
||
|
||
|
||
@dataclass
|
||
class PluginCallEndEvent(Event):
|
||
"""插件调用结束事件"""
|
||
plugin_name: str # 插件名称
|
||
command: str # 触发的命令
|
||
user_id: str # 用户ID
|
||
group_id: Optional[str] = None # 群组ID,私聊为None
|
||
is_group: bool = False # 是否群聊
|
||
process_result: bool = True # 处理结果:True成功,False失败
|
||
result_message: Optional[str] = None # 处理结果消息
|
||
process_time: int = 0 # 处理耗时(毫秒)
|
||
timestamp: datetime = None # 事件时间戳
|
||
|
||
def __post_init__(self):
|
||
if self.timestamp is None:
|
||
self.timestamp = datetime.now()
|
||
|
||
|
||
@dataclass
|
||
class PluginCallErrorEvent(Event):
|
||
"""插件调用错误事件"""
|
||
plugin_name: str # 插件名称
|
||
command: str # 触发的命令
|
||
user_id: str # 用户ID
|
||
group_id: Optional[str] # 群组ID,私聊为None
|
||
is_group: bool # 是否群聊
|
||
error_message: str # 错误信息
|
||
stack_trace: Optional[str] = None # 堆栈跟踪
|
||
process_time: int = 0 # 处理耗时(毫秒)
|
||
timestamp: datetime = None # 事件时间戳
|
||
|
||
def __post_init__(self):
|
||
if self.timestamp is None:
|
||
self.timestamp = datetime.now()
|