1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//! 我的账号信息,可以用来判断当前 client 是否登录
use crate::requests::prelude::*;

/// 我的账号信息,需要鉴权
#[derive(Debug, Deserialize)]
pub struct MyAccountInfo {
    /// uid
    #[serde(rename = "mid")]
    uid: u64,

    #[serde(rename = "uname")]
    username: String,

    /// 签名
    sign: String,
}

impl Request for MyAccountInfo {
    type Args = ();

    fn request(client: &Client, _: Self::Args) -> RequestResponse<Self> {
        const URL: &str = "https://api.bilibili.com/x/member/web/account";
        let r = client.get(URL).send();
        Box::pin(async move { r.await?.bili_data().await })
    }
}