onebot_api/event/
notice.rs1use serde::Deserialize;
2
3#[derive(Deserialize, Debug, Clone)]
4#[serde(tag = "notice_type")]
5pub enum NoticeEvent {
6 #[serde(rename = "group_upload")]
7 GroupUpload {
8 group_id: i64,
9 user_id: i64,
10 file: GroupFile,
11 },
12
13 #[serde(rename = "group_admin")]
14 GroupAdmin {
15 sub_type: GroupAdminType,
16 group_id: i64,
17 user_id: i64,
18 },
19
20 #[serde(rename = "group_decrease")]
21 GroupDecrease {
22 sub_type: GroupAdminType,
23 operator_id: i64,
24 user_id: i64,
25 },
26
27 #[serde(rename = "group_increate")]
28 GroupIncrease {
29 sub_type: GroupIncreaseType,
30 group_id: i64,
31 operator_id: i64,
32 user_id: i64,
33 },
34
35 #[serde(rename = "group_ban")]
36 GroupBan {
37 sub_type: GroupBanType,
38 group_id: i64,
39 operator_id: i64,
40 user_id: i64,
41 duration: i64,
42 },
43
44 #[serde(rename = "friend_add")]
45 FriendAdd { user_id: i64 },
46
47 #[serde(rename = "group_recall")]
48 GroupRecall {
49 group_id: i64,
50 user_id: i64,
51 operator_id: i64,
52 message_id: i64,
53 },
54
55 #[serde(rename = "friend_recall")]
56 FriendRecall { user_id: i64, message_id: i64 },
57
58 #[serde(rename = "notify")]
59 Notify {
60 group_id: i64,
61 user_id: i64,
62 #[serde(flatten)]
63 data: NotifyType,
64 },
65}
66
67#[derive(Deserialize, Debug, Clone)]
68pub struct GroupFile {
69 pub id: String,
70 pub name: String,
71 pub size: i64,
72 pub busid: i64,
73}
74
75#[derive(Deserialize, Debug, Clone)]
76pub enum GroupAdminType {
77 #[serde(rename = "set")]
78 Set,
79 #[serde(rename = "unset")]
80 Unset,
81}
82
83#[derive(Deserialize, Debug, Clone)]
84pub enum GroupDecreaseType {
85 #[serde(rename = "leave")]
86 Leave,
87 #[serde(rename = "kick")]
88 Kick,
89 #[serde(rename = "kick_me")]
90 KickMe,
91}
92
93#[derive(Deserialize, Debug, Clone)]
94pub enum GroupIncreaseType {
95 #[serde(rename = "approve")]
96 Approve,
97 #[serde(rename = "invite")]
98 Invite,
99}
100
101#[derive(Deserialize, Debug, Clone)]
102pub enum GroupBanType {
103 #[serde(rename = "ban")]
104 Ban,
105 #[serde(rename = "lift_ban")]
106 LiftBan,
107}
108
109#[derive(Deserialize, Debug, Clone)]
110#[serde(tag = "sub_type")]
111pub enum NotifyType {
112 #[serde(rename = "poke")]
113 Poke { target_id: i64 },
114 #[serde(rename = "lucky_king")]
115 LuckyKing { target_id: i64 },
116 #[serde(rename = "honor")]
117 Honor { honor_type: HonorType },
118}
119
120#[derive(Deserialize, Debug, Clone)]
121pub enum HonorType {
122 #[serde(rename = "talkative")]
123 Talkative,
124 #[serde(rename = "performer")]
125 Performer,
126 #[serde(rename = "emotion")]
127 Emotion,
128}