事件工厂111
This commit is contained in:
159
models/events/notice.py
Normal file
159
models/events/notice.py
Normal file
@@ -0,0 +1,159 @@
|
||||
"""
|
||||
通知事件模型模块
|
||||
|
||||
定义了通知相关的事件类,包括好友通知和群组通知等。
|
||||
"""
|
||||
from dataclasses import dataclass, field
|
||||
from .base import OneBotEvent, EventType
|
||||
|
||||
|
||||
@dataclass
|
||||
class NoticeEvent(OneBotEvent):
|
||||
"""
|
||||
通知事件基类
|
||||
"""
|
||||
|
||||
notice_type: str
|
||||
"""通知类型"""
|
||||
|
||||
@property
|
||||
def post_type(self) -> str:
|
||||
return EventType.NOTICE
|
||||
|
||||
|
||||
@dataclass
|
||||
class FriendAddNoticeEvent(NoticeEvent):
|
||||
"""
|
||||
好友添加通知
|
||||
"""
|
||||
user_id: int = 0
|
||||
"""新好友 QQ 号"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class FriendRecallNoticeEvent(NoticeEvent):
|
||||
"""
|
||||
好友消息撤回通知
|
||||
"""
|
||||
user_id: int = 0
|
||||
"""消息发送者 QQ 号"""
|
||||
|
||||
message_id: int = 0
|
||||
"""被撤回的消息 ID"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupNoticeEvent(NoticeEvent):
|
||||
"""
|
||||
群组通知事件基类
|
||||
"""
|
||||
group_id: int = 0
|
||||
"""群号"""
|
||||
|
||||
user_id: int = 0
|
||||
"""用户 QQ 号"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupRecallNoticeEvent(GroupNoticeEvent):
|
||||
"""
|
||||
群消息撤回通知
|
||||
"""
|
||||
operator_id: int = 0
|
||||
"""操作者 QQ 号"""
|
||||
|
||||
message_id: int = 0
|
||||
"""被撤回的消息 ID"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupIncreaseNoticeEvent(GroupNoticeEvent):
|
||||
"""
|
||||
群成员增加通知
|
||||
"""
|
||||
operator_id: int = 0
|
||||
"""操作者 QQ 号"""
|
||||
|
||||
sub_type: str = ""
|
||||
"""
|
||||
子类型
|
||||
approve: 管理员同意入群
|
||||
invite: 管理员邀请入群
|
||||
"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupDecreaseNoticeEvent(GroupNoticeEvent):
|
||||
"""
|
||||
群成员减少通知
|
||||
"""
|
||||
operator_id: int = 0
|
||||
"""操作者 QQ 号(如果是主动退群,则和 user_id 相同)"""
|
||||
|
||||
sub_type: str = ""
|
||||
"""
|
||||
子类型
|
||||
leave: 主动退群
|
||||
kick: 成员被踢
|
||||
kick_me: 登录号被踢
|
||||
disband: 群被解散
|
||||
"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupAdminNoticeEvent(GroupNoticeEvent):
|
||||
"""
|
||||
群管理员变动通知
|
||||
"""
|
||||
sub_type: str = ""
|
||||
"""
|
||||
子类型
|
||||
set: 设置管理员
|
||||
unset: 取消管理员
|
||||
"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupBanNoticeEvent(GroupNoticeEvent):
|
||||
"""
|
||||
群禁言通知
|
||||
"""
|
||||
operator_id: int = 0
|
||||
"""操作者 QQ 号(管理员)"""
|
||||
|
||||
duration: int = 0
|
||||
"""禁言时长(秒),0 表示解除禁言"""
|
||||
|
||||
sub_type: str = ""
|
||||
"""
|
||||
子类型
|
||||
ban: 禁言
|
||||
lift_ban: 解除禁言
|
||||
"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupUploadFile:
|
||||
"""
|
||||
群文件信息
|
||||
"""
|
||||
id: str = ""
|
||||
"""文件 ID"""
|
||||
|
||||
name: str = ""
|
||||
"""文件名"""
|
||||
|
||||
size: int = 0
|
||||
"""文件大小(Byte)"""
|
||||
|
||||
busid: int = 0
|
||||
"""文件总线 ID"""
|
||||
|
||||
|
||||
@dataclass
|
||||
class GroupUploadNoticeEvent(GroupNoticeEvent):
|
||||
"""
|
||||
群文件上传通知
|
||||
"""
|
||||
file: GroupUploadFile = field(default_factory=GroupUploadFile)
|
||||
"""文件信息"""
|
||||
Reference in New Issue
Block a user