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> {
25 let params = [("platform", "android")];
26 self
27 .post("https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic")
28 .form(¶ms)
29 .send_bpi("分享漫画").await
30 }
31}
32
33#[cfg(test)]
34mod tests {
35 use super::*;
36
37 #[tokio::test]
38 async fn test_share_comic() -> Result<(), Box<BpiError>> {
39 let bpi = BpiClient::new();
40
41 let result = bpi.manga_share_comic().await?;
42
43 let data = result.into_data()?;
47
48 assert_eq!(data.point, 5);
49
50 Ok(())
51 }
52}