""" 通知事件模型模块 定义了通知相关的事件类,包括好友通知和群组通知等。 """ 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) """文件信息"""