ncm_api_rs/api/
song_detail.rs1use super::Query;
2use crate::error::Result;
3use crate::request::{ApiClient, ApiResponse, CryptoType};
6use serde_json::json;
7
8impl ApiClient {
9 pub async fn song_detail(&self, query: &Query) -> Result<ApiResponse> {
12 let ids = query.get_or("ids", "");
13 let c: Vec<serde_json::Value> = ids
14 .split(',')
15 .map(|s| s.trim())
16 .filter(|s| !s.is_empty())
17 .map(|id| json!({"id": id.parse::<i64>().unwrap_or(0)}))
18 .collect();
19 let data = json!({
20 "c": serde_json::to_string(&c).unwrap_or_default()
21 });
22 self.request(
23 "/api/v3/song/detail",
24 data,
25 query.to_option(CryptoType::Weapi),
26 )
27 .await
28 }
29}