onebot_api/
api.rs

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