ncm_api_rs/api/
playlist_track_delete.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_track_delete(&self, query: &Query) -> Result<ApiResponse> {
12 let tracks: Vec<serde_json::Value> = query
13 .get_or("ids", "")
14 .split(',')
15 .map(|s| s.trim().to_string())
16 .filter(|s| !s.is_empty())
17 .map(|id| json!({"type": 3, "id": id}))
18 .collect();
19 let data = json!({
20 "id": query.get_or("id", "0"),
21 "tracks": serde_json::to_string(&tracks).unwrap_or_default()
22 });
23 self.request(
24 "/api/playlist/track/delete",
25 data,
26 query.to_option(CryptoType::Weapi),
27 )
28 .await
29 }
30}