diff --git a/src/main.rs b/src/main.rs index c1b3f65..8a0e0ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,3 @@ -// use std::error::Error; -// use tokio::io::AsyncReadExt; -// use tokio::net::{TcpListener, TcpStream}; -// use tokio::spawn; - #[tokio::main] async fn main() -> Result<(), Box> { let app_base_url = get_icarus_url().await; @@ -10,20 +5,29 @@ async fn main() -> Result<(), Box> { loop { println!("Base URL: {}", app_base_url); - // TODO: Update the api/v2/song/queue/next endpoint to only retrieve queued song that is - // ready to be processed. Make necessary changes to other endpoints - - // let api_url = format!("{}/api/v2/song/queue/next", app_base_url); - - // match client.get(api_url).send().await { match api::fetch_next_queue_item(&app_base_url).await { Ok(response) => { - // let body = response.text().await?; - // println!("API response: {}", body); - match response.json::().await { + match response + .json::() + .await + { Ok(song_queue_item) => { if !song_queue_item.data.is_empty() { println!("Song queue item: {:?}", song_queue_item); + + // Process data here... + + // TODO: Parse the response body to a struct + // TODO: Get queued song data + // TODO: Get queued song's metadata + // TODO: Get queued coverart + // TODO: Get queued coverart's data + // TODO: Apply metadata to the queued song + // 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 } else { println!("No data to fetch"); } @@ -32,19 +36,6 @@ async fn main() -> Result<(), Box> { eprintln!("Error: {:?}", err); } } - // Process data here... - - // TODO: Parse the response body to a struct - // TODO: Get queued song data - // TODO: Get queued song's metadata - // TODO: Get queued coverart - // TODO: Get queued coverart's data - // TODO: Apply metadata to the queued song - // 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(e) => eprintln!("API call failed: {}", e), } @@ -52,7 +43,6 @@ async fn main() -> Result<(), Box> { println!("Sleeping"); tokio::time::sleep(tokio::time::Duration::from_secs(5)).await; } - // Ok(()) } mod responses { @@ -75,14 +65,13 @@ mod responses { } mod api { - pub async fn fetch_next_queue_item(base_url: &String) -> Result { + pub async fn fetch_next_queue_item( + base_url: &String, + ) -> Result { let client = reqwest::Client::new(); let fetch_endpoint = String::from("api/v2/song/queue/next"); let api_url = format!("{}/{}", base_url, fetch_endpoint); - let resp = client.get(api_url).send().await; - - // Ok(resp) - resp + client.get(api_url).send().await } }