Skip to main content

bpi_rs/login/member_center/
reward.rs

1//! 查询每日奖励状态
2//!
3//! [文档](https://socialsisteryi.github.io/bilibili-API-collect/docs/login/member_center.html#查询每日奖励状态)
4
5use crate::{ BilibiliRequest, BpiClient, BpiError, BpiResponse };
6use serde::{ Deserialize, Serialize };
7
8/// 每日奖励状态信息体
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct DailyReward {
11    /// 每日登录奖励状态
12    /// - false:未完成
13    /// - true:已完成,完成奖励5经验
14    pub login: bool,
15    /// 每日观看奖励状态
16    /// - false:未完成
17    /// - true:已完成,完成奖励5经验
18    pub watch: bool,
19    /// 每日投币奖励经验(上限50)
20    /// 注:该值更新存在延迟
21    pub coins: u32,
22    /// 每日分享奖励状态
23    /// - false:未完成
24    /// - true:已完成,完成奖励5经验
25    pub share: bool,
26    /// 绑定邮箱奖励状态
27    /// - false:未完成
28    /// - true:已完成,首次完成奖励20经验
29    pub email: bool,
30    /// 绑定手机号奖励状态
31    /// - false:未完成
32    /// - true:已完成,首次完成奖励100经验
33    pub tel: bool,
34    /// 设置密保问题奖励状态
35    /// - false:未完成
36    /// - true:已完成,首次完成奖励30经验
37    pub safe_question: bool,
38    /// 实名认证奖励状态
39    /// - false:未完成
40    /// - true:已完成,首次完成奖励50经验
41    pub identify_card: bool,
42}
43
44impl BpiClient {
45    /// 查询每日奖励状态
46    pub async fn member_center_daily_reward(&self) -> Result<BpiResponse<DailyReward>, BpiError> {
47        self
48            .get("https://api.bilibili.com/x/member/web/exp/reward")
49            .header("Referer", "")
50            .send_bpi("查询每日奖励状态").await
51    }
52}
53
54#[cfg(test)]
55mod tests {
56    use super::*;
57
58    #[tokio::test]
59    async fn test_get_daily_reward() -> Result<(), BpiError> {
60        let bpi = BpiClient::new();
61
62        let result = bpi.member_center_daily_reward().await?;
63        println!("{:?}", result);
64        Ok(())
65    }
66}