1use crate::{ BilibiliRequest, BpiClient, BpiError, BpiResponse };
6use serde::{ Deserialize, Serialize };
7
8#[derive(Debug, Serialize, Clone, Deserialize)]
11pub struct ShareComicData {
12 pub point: i32,
14}
15
16pub type ShareComicResponse = BpiResponse<ShareComicData>;
17
18impl BpiClient {
21 pub async fn manga_share_comic(&self) -> Result<ShareComicResponse, BpiError> {
26 let params = [("platform", "android")];
27 self
28 .post("https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic")
29 .form(¶ms)
30 .send_bpi("分享漫画").await
31 }
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[tokio::test]
39 async fn test_share_comic() -> Result<(), Box<BpiError>> {
40 let bpi = BpiClient::new();
41
42 let result = bpi.manga_share_comic().await?;
43
44 let data = result.into_data()?;
48
49 assert_eq!(data.point, 5);
50
51 Ok(())
52 }
53}