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()
|