From 4ddc199d6a2df6b9d21171a3a6b30687e0e7cdc4 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Tue, 17 Jun 2025 20:35:31 -0400 Subject: [PATCH 1/3] Adding functionality to get coverart --- src/main.rs | 60 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 65b9af7..1e47c0e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -79,14 +79,33 @@ async fn process_song(api_url: &String, song_queue_id: &uuid::Uuid) -> Result<() println!("Id: {:?}", id); println!("Metadata: {:?}", metadata); println!("Created at: {:?}", created_at); - // TODO: Get queued coverart - // TODO: Get queued coverart's data - // TODO: Apply metadata to the queued song (modifying file) - // TODO: Update the queued song with the updated queued song - // TODO: Create song - // TODO: Create coverart - // TODO: Wipe data from queued song - // TODO: Wipe data from queued coverart + + println!("Getting coverart queue"); + match api::get_coverart_queue::get(api_url, song_queue_id).await { + Ok(response) => { + println!("Parsing response: {:?}", response); + match response.json::().await { + Ok(response) => { + let coverart_queue_id = &response.data[0].id; + println!("Coverart queue Id: {:?}", coverart_queue_id); + // TODO: Get queued coverart + // TODO: Get queued coverart's data + // TODO: Apply metadata to the queued song (modifying file) + // TODO: Update the queued song with the updated queued song + // TODO: Create song + // TODO: Create coverart + // TODO: Wipe data from queued song + // TODO: Wipe data from queued coverart + } + Err(err) => { + eprintln!("Error: {:?}", err); + } + } + } + Err(err) => { + eprintln!("Error: {:?}", err); + } + } Ok(()) } Err(err) => { @@ -246,4 +265,29 @@ mod api { } } } + + pub mod get_coverart_queue { + pub async fn get(base_url: &String, song_queue_id: &uuid::Uuid) -> Result { + let client = reqwest::Client::new(); + let endpoint = String::from("api/v2/coverart/queue"); + let api_url = format!("{}/{}", base_url, endpoint); + client.get(api_url).query(&[("song_queue_id", song_queue_id)]).send().await + } + + pub mod response { + use serde::{Deserialize, Serialize}; + + #[derive(Debug, Deserialize, Serialize)] + pub struct CoverArtQueue { + pub id: uuid::Uuid, + pub song_queue_id: uuid::Uuid, + } + + #[derive(Debug, Deserialize, Serialize)] + pub struct Response { + pub message: String, + pub data: Vec + } + } + } } -- 2.43.0 From df6ccc2671af011b44710a7c9db14b70ad31e6de Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Tue, 17 Jun 2025 20:39:50 -0400 Subject: [PATCH 2/3] Cleanup --- src/main.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 1e47c0e..a589be0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -83,12 +83,10 @@ async fn process_song(api_url: &String, song_queue_id: &uuid::Uuid) -> Result<() println!("Getting coverart queue"); match api::get_coverart_queue::get(api_url, song_queue_id).await { Ok(response) => { - println!("Parsing response: {:?}", response); match response.json::().await { Ok(response) => { let coverart_queue_id = &response.data[0].id; println!("Coverart queue Id: {:?}", coverart_queue_id); - // TODO: Get queued coverart // TODO: Get queued coverart's data // TODO: Apply metadata to the queued song (modifying file) // TODO: Update the queued song with the updated queued song -- 2.43.0 From e46f5645c9182c207f3fb70b69a2df2c7ac6ebb7 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Tue, 17 Jun 2025 20:40:05 -0400 Subject: [PATCH 3/3] Code formatting --- src/main.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index a589be0..23cfb11 100644 --- a/src/main.rs +++ b/src/main.rs @@ -81,7 +81,8 @@ async fn process_song(api_url: &String, song_queue_id: &uuid::Uuid) -> Result<() println!("Created at: {:?}", created_at); println!("Getting coverart queue"); - match api::get_coverart_queue::get(api_url, song_queue_id).await { + match api::get_coverart_queue::get(api_url, song_queue_id).await + { Ok(response) => { match response.json::().await { Ok(response) => { @@ -265,11 +266,18 @@ mod api { } pub mod get_coverart_queue { - pub async fn get(base_url: &String, song_queue_id: &uuid::Uuid) -> Result { + pub async fn get( + base_url: &String, + song_queue_id: &uuid::Uuid, + ) -> Result { let client = reqwest::Client::new(); let endpoint = String::from("api/v2/coverart/queue"); let api_url = format!("{}/{}", base_url, endpoint); - client.get(api_url).query(&[("song_queue_id", song_queue_id)]).send().await + client + .get(api_url) + .query(&[("song_queue_id", song_queue_id)]) + .send() + .await } pub mod response { @@ -284,7 +292,7 @@ mod api { #[derive(Debug, Deserialize, Serialize)] pub struct Response { pub message: String, - pub data: Vec + pub data: Vec, } } } -- 2.43.0