bpi_rs/login/login_info/
coin.rs

1//! 获取硬币数
2//!
3//! https://socialsisteryi.github.io/bilibili-API-collect/docs/login/login_info_info.html#获取硬币数
4
5use crate::{ BilibiliRequest, BpiClient, BpiError, BpiResponse };
6use serde::{ Deserialize, Serialize };
7
8/// 获取硬币数 - 响应结构体
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct CoinInfo {
11    /// 当前硬币数
12    pub money: f64,
13}
14
15impl BpiClient {
16    /// 获取账号硬币数
17    ///
18    /// 文档: https://github.com/SocialSisterYi/bilibili-API-collect/tree/master/docs/login
19    pub async fn login_info_coin(&self) -> Result<BpiResponse<CoinInfo>, BpiError> {
20        self.get("https://account.bilibili.com/site/getCoin").send_bpi("获取硬币数").await
21    }
22}
23
24#[cfg(test)]
25mod tests {
26    use super::*;
27
28    #[tokio::test]
29    async fn test_get_coin() {
30        let bpi = BpiClient::new();
31
32        match bpi.login_info_coin().await {
33            Ok(resp) => {
34                if resp.code == 0 {
35                    tracing::info!("获取硬币数成功: {:?}", resp.data.unwrap().money);
36                } else {
37                    tracing::info!("请求失败: code={}", resp.code);
38                }
39            }
40            Err(err) => {
41                panic!("请求出错: {}", err);
42            }
43        }
44    }
45}