Skip to main content

onebot_api/event/
notice.rs

1use 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}