use crate::{ BilibiliRequest, BpiClient, BpiError, BpiResponse };
use serde::{ Deserialize, Serialize };
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ThumbupStatsItem {
pub likes: i64,
pub user_like: i32,
pub id_str: String,
}
pub type ThumbupStatsMap = HashMap<String, ThumbupStatsItem>;
pub type ThumbupStatsResponse = BpiResponse<ThumbupStatsMap>;
impl BpiClient {
pub async fn danmaku_thumbup_stats(
&self,
oid: i64,
ids: &[i64]
) -> Result<ThumbupStatsResponse, BpiError> {
let ids_join = ids
.iter()
.map(|v| v.to_string())
.collect::<Vec<_>>()
.join(",");
let params = vec![("oid", oid.to_string()), ("ids", ids_join)];
let resp: ThumbupStatsResponse = self
.get("https://api.bilibili.com/x/v2/dm/thumbup/stats")
.query(¶ms)
.send_bpi("查询弹幕点赞状态").await?;
Ok(resp)
}
}