bpi_rs/danmaku/
thumbup.rs1use crate::{ BilibiliRequest, BpiClient, BpiError, BpiResponse };
6use serde::{ Deserialize, Serialize };
7use std::collections::HashMap;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct ThumbupStatsItem {
11 pub likes: i64,
13 pub user_like: i32,
15 pub id_str: String,
16}
17
18pub type ThumbupStatsMap = HashMap<String, ThumbupStatsItem>;
19
20pub type ThumbupStatsResponse = BpiResponse<ThumbupStatsMap>;
21
22impl BpiClient {
23 pub async fn danmaku_thumbup_stats(
25 &self,
26 oid: i64,
27 ids: &[i64]
28 ) -> Result<ThumbupStatsResponse, BpiError> {
29 let ids_join = ids
30 .iter()
31 .map(|v| v.to_string())
32 .collect::<Vec<_>>()
33 .join(",");
34 let params = vec![("oid", oid.to_string()), ("ids", ids_join)];
35
36 let resp: ThumbupStatsResponse = self
37 .get("https://api.bilibili.com/x/v2/dm/thumbup/stats")
38 .query(¶ms)
39 .send_bpi("查询弹幕点赞状态").await?;
40
41 Ok(resp)
42 }
43}