Skip to main content

onebot_api/
api.rs

1use crate::error::APIResult;
2use crate::event::message::GroupMessageAnonymous;
3use crate::message::receive_segment::ReceiveSegment;
4use crate::message::send_segment::SendSegment;
5use arg_type::*;
6use async_trait::async_trait;
7use return_type::*;
8
9pub mod arg_type;
10pub mod return_type;
11
12// pub(crate) trait APIArg {}
13
14#[async_trait]
15pub trait APISender {
16	async fn send_private_msg(
17		&self,
18		user_id: i64,
19		message: Vec<SendSegment>,
20		auto_escape: Option<bool>,
21	) -> APIResult<i32>;
22
23	async fn send_group_msg(
24		&self,
25		group_id: i64,
26		message: Vec<SendSegment>,
27		auto_escape: Option<bool>,
28	) -> APIResult<i32>;
29
30	async fn send_msg(
31		&self,
32		message_type: Option<MessageType>,
33		user_id: i64,
34		group_id: i64,
35		message: Vec<SendSegment>,
36		auto_escape: Option<bool>,
37	) -> APIResult<i32>;
38
39	async fn delete_msg(&self, message_id: i32) -> APIResult<()>;
40
41	async fn get_msg(&self, message_id: i32) -> APIResult<GetMsgResponse>;
42
43	async fn get_forward_msg(&self, id: String) -> APIResult<Vec<ReceiveSegment>>;
44
45	async fn send_like(&self, user_id: i64, times: Option<i32>) -> APIResult<()>;
46
47	async fn set_group_kick(
48		&self,
49		group_id: i32,
50		user_id: i32,
51		reject_add_request: Option<bool>,
52	) -> APIResult<()>;
53
54	async fn set_group_ban(
55		&self,
56		group_id: i32,
57		user_id: i32,
58		duration: Option<i32>,
59	) -> APIResult<()>;
60
61	async fn set_group_anonymous_ban(
62		&self,
63		group_id: i32,
64		anonymous: Option<GroupMessageAnonymous>,
65		flag: Option<String>,
66		duration: Option<i32>,
67	) -> APIResult<()>;
68
69	async fn set_group_whole_ban(&self, group_id: i32, enable: Option<bool>) -> APIResult<()>;
70
71	async fn set_group_admin(
72		&self,
73		group_id: i32,
74		user_id: i32,
75		enable: Option<bool>,
76	) -> APIResult<()>;
77
78	async fn set_group_anonymous(&self, group_id: i32, enable: Option<bool>) -> APIResult<()>;
79
80	async fn set_group_card(
81		&self,
82		group_id: i32,
83		user_id: i32,
84		card: Option<String>,
85	) -> APIResult<()>;
86
87	async fn set_group_name(&self, group_id: i32, group_name: String) -> APIResult<()>;
88
89	async fn set_group_leave(&self, group_id: i32, is_dismiss: Option<bool>) -> APIResult<()>;
90
91	async fn set_group_special_title(
92		&self,
93		group_id: i32,
94		user_id: i32,
95		special_title: Option<String>,
96		duration: Option<i32>,
97	) -> APIResult<()>;
98
99	async fn set_friend_add_request(
100		&self,
101		flag: String,
102		approve: Option<bool>,
103		remark: Option<String>,
104	) -> APIResult<()>;
105
106	async fn set_group_add_request(
107		&self,
108		flag: String,
109		sub_type: String,
110		approve: Option<bool>,
111		reason: Option<String>,
112	) -> APIResult<()>;
113
114	async fn get_login_info(&self) -> APIResult<GetLoginInfoResponse>;
115
116	async fn get_stranger_info(
117		&self,
118		user_id: i32,
119		no_cache: Option<bool>,
120	) -> APIResult<GetStrangerInfoResponse>;
121
122	async fn get_friend_list(&self) -> APIResult<Vec<GetFriendListResponse>>;
123
124	async fn get_group_info(
125		&self,
126		group_id: i32,
127		no_cache: Option<bool>,
128	) -> APIResult<GetGroupInfoResponse>;
129
130	async fn get_group_list(&self) -> APIResult<Vec<GetGroupInfoResponse>>;
131
132	async fn get_group_member_info(
133		&self,
134		group_id: i32,
135		user_id: i32,
136		no_cache: Option<bool>,
137	) -> APIResult<GetGroupMemberInfoResponse>;
138
139	async fn get_group_member_list(
140		&self,
141		group_id: i32,
142	) -> APIResult<Vec<GetGroupMemberInfoResponse>>;
143
144	async fn get_group_honor_info(
145		&self,
146		group_id: i64,
147		honor_type: String,
148	) -> APIResult<GetGroupMemberInfoResponse>;
149
150	async fn get_cookies(&self, domain: Option<String>) -> APIResult<String>;
151
152	async fn get_csrf_token(&self) -> APIResult<i32>;
153
154	async fn get_credentials(&self, domain: Option<String>) -> APIResult<GetCredentialsResponse>;
155
156	async fn get_record(&self, file: String, out_format: String) -> APIResult<String>;
157
158	async fn get_image(&self, file: String) -> APIResult<String>;
159
160	async fn can_send_image(&self) -> APIResult<bool>;
161
162	async fn can_send_record(&self) -> APIResult<bool>;
163
164	async fn get_status(&self) -> APIResult<GetStatusResponse>;
165
166	async fn get_version_info(&self) -> APIResult<GetVersionInfoResponse>;
167
168	async fn set_restart(&self, delay: Option<i32>) -> APIResult<()>;
169
170	async fn clean_cache(&self) -> APIResult<()>;
171}