use crate::{ BilibiliRequest, BpiClient, BpiError, BpiResponse };
use serde::{ Deserialize, Serialize };
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ElectromagneticInfo {
pub mid: u64,
pub level: u32,
pub score: u32,
pub credit: u32,
pub state: i32,
}
impl BpiClient {
pub async fn up_electromagnetic_info(
&self
) -> Result<BpiResponse<ElectromagneticInfo>, BpiError> {
self
.get("https://api.bilibili.com/studio/up-rating/v3/rating/info")
.send_bpi("获取电磁力等级").await
}
}
#[cfg(test)]
mod tests {
use super::*;
#[tokio::test]
async fn test_electromagnetic_info() -> Result<(), Box<BpiError>> {
let bpi = BpiClient::new();
let data = bpi.up_electromagnetic_info().await?.into_data()?;
tracing::info!(
"mid={}, level={}, score={}, credit={}, state={}",
data.mid,
data.level,
data.score,
data.credit,
data.state
);
Ok(())
}
}