bpi_rs/login/login_info/
coin.rs1use crate::{ BilibiliRequest, BpiClient, BpiError, BpiResponse };
6use serde::{ Deserialize, Serialize };
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct CoinInfo {
11 pub money: f64,
13}
14
15impl BpiClient {
16 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}