ncm_api_rs/api/
song_url.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_url(&self, query: &Query) -> Result<ApiResponse> {
12 let ids: Vec<String> = query
13 .get_or("id", "")
14 .split(',')
15 .map(|s| s.trim().to_string())
16 .filter(|s| !s.is_empty())
17 .collect();
18 let br = query
19 .get_or("br", "999000")
20 .parse::<i64>()
21 .unwrap_or(999000);
22 let data = json!({
23 "ids": serde_json::to_string(&ids).unwrap_or_default(),
24 "br": br
25 });
26 self.request(
27 "/api/song/enhance/player/url",
28 data,
29 query.to_option(CryptoType::default()),
30 )
31 .await
32 }
33}