ncm_api_rs/api/
playlist_tracks.rs1use super::Query;
2use crate::error::Result;
3use crate::request::{ApiClient, ApiResponse, CryptoType};
6use serde_json::json;
7
8impl ApiClient {
9 pub async fn playlist_tracks(&self, query: &Query) -> Result<ApiResponse> {
12 let tracks: Vec<String> = query
13 .get_or("tracks", "")
14 .split(',')
15 .map(|s| s.trim().to_string())
16 .filter(|s| !s.is_empty())
17 .collect();
18 let data = json!({
19 "op": query.get_or("op", "add"),
20 "pid": query.get_or("pid", "0"),
21 "trackIds": serde_json::to_string(&tracks).unwrap_or_default(),
22 "imme": "true"
23 });
24 self.request(
25 "/api/playlist/manipulate/tracks",
26 data,
27 query.to_option(CryptoType::default()),
28 )
29 .await
30 }
31}