From 1b4552959343da345eba667170534e62ab50e6b3 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 28 Aug 2025 18:48:43 -0400 Subject: [PATCH 1/6] Added comments --- src/managers/commit_manager.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 2740d1b..2b3f548 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -332,6 +332,7 @@ impl CommitManager { } } + /// Only uploading one song async fn sing_target_upload( &mut self, songpath: &String, @@ -413,6 +414,7 @@ impl CommitManager { } } + /// Upload song to the queue to get processed async fn upload_song_process(&self, data: &UploadSongMembers) -> Result<()> { let mut up = syncers::upload::Upload::default(); let host = self.ica_action.retrieve_flag_value(&String::from("-h")); -- 2.47.3 From 6a3c4a0e2f9842a3e6ab8579251e1a50acaee9e7 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 28 Aug 2025 19:01:27 -0400 Subject: [PATCH 2/6] Added TODO --- src/managers/commit_manager.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 2b3f548..38baf0a 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -532,6 +532,7 @@ impl CommitManager { } } + // TODO: Make sure this works async fn multi_target_upload(&mut self, sourcepath: &String) -> std::io::Result<()> { let mut prsr = parsers::api_parser::APIParser { apis: vec![models::api::Api::default(), models::api::Api::default()], -- 2.47.3 From d00ba1e9f65f90031ea95b124dc5d615a59dcf40 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Fri, 29 Aug 2025 21:53:08 -0400 Subject: [PATCH 3/6] Got it working --- src/managers/commit_manager.rs | 41 +++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 38baf0a..475b67e 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -562,26 +562,41 @@ impl CommitManager { match self.get_songs(&metadatapath, sourcepath) { Ok(sngs) => { - for song in sngs { - match Runtime::new() - .unwrap() - .block_on(up.upload_song_with_metadata(&token, &song, &cover_art)) - { - Ok(o) => { - println!("Response: {o:?}"); + match icarus_models::album::collection::parse_album(&metadatapath) { + Ok(album) => { + for song in sngs { + let members = UploadSongMembers { + song: song, + coverart: cover_art.clone(), + token: token.clone(), + album: album.clone(), + }; + + match self.upload_song_process(&members).await + { + Ok(o) => { + println!("Response: {o:?}"); + } + Err(err) => { + println!("Error: {err:?}"); + return Err(err); + } + } } - Err(err) => { - println!("Error: {err:?}"); - } - }; + + Ok(()) + } + Err(err) => { + println!("Error: {err:?}"); + Err(std::io::Error::other(err.to_string())) + } } } Err(error) => { println!("Error: {error:?}"); + Err(std::io::Error::other(error.to_string())) } } - - Ok(()) } fn get_cover_art_path(&self, directory_path: &String) -> Result { -- 2.47.3 From cee584732be67ecda7c22f6267c06a5a0b7f4853 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Fri, 29 Aug 2025 21:55:13 -0400 Subject: [PATCH 4/6] Updated documentation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dce72b0..375a3e8 100644 --- a/README.md +++ b/README.md @@ -48,13 +48,13 @@ icarus-dm download -u spacecadet -p stellar40 -h https://icarus.com -b e8407fc6- ### Uploading Song with metadata ```BASH -icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -s /path/of/song.flac -t 1 -m /path/to/metadata/config/collection.json -ca /path/to/cover/art/image.png +icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -s /path/of/song.flac -t 1 -m /path/to/metadata/config/collection.json -ca /path/to/cover/art/image.png ``` ### Uploading Song with metadata from directory ```BASH -icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -smca /path/where/songs/and/metadata/exists/ +icarus-dm upload-meta -u spacecadet -p stellar40 -h https://icarus.com -ha https://auth.icarus.com -smca /path/where/songs/and/metadata/exists/ ``` ### Retrieving Song in json -- 2.47.3 From d95305330f2268a248974e376cc66f7628517dba Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Fri, 29 Aug 2025 21:55:22 -0400 Subject: [PATCH 5/6] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a34de73..0667dfc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -479,7 +479,7 @@ dependencies = [ [[package]] name = "icarus-dm" -version = "0.6.1" +version = "0.6.2" dependencies = [ "futures", "http", diff --git a/Cargo.toml b/Cargo.toml index 99038c5..c83c7d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus-dm" -version = "0.6.1" +version = "0.6.2" rust-version = "1.88" edition = "2024" -- 2.47.3 From 0f0ff94344fdef1226806bbabd402500426e9163 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Fri, 29 Aug 2025 21:56:32 -0400 Subject: [PATCH 6/6] Code formatting and cleanup --- src/managers/commit_manager.rs | 50 ++++++++++++++++------------------ 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 475b67e..713616f 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -532,7 +532,6 @@ impl CommitManager { } } - // TODO: Make sure this works async fn multi_target_upload(&mut self, sourcepath: &String) -> std::io::Result<()> { let mut prsr = parsers::api_parser::APIParser { apis: vec![models::api::Api::default(), models::api::Api::default()], @@ -561,37 +560,34 @@ impl CommitManager { cover_art.data = cover_art.to_data().unwrap(); match self.get_songs(&metadatapath, sourcepath) { - Ok(sngs) => { - match icarus_models::album::collection::parse_album(&metadatapath) { - Ok(album) => { - for song in sngs { - let members = UploadSongMembers { - song: song, - coverart: cover_art.clone(), - token: token.clone(), - album: album.clone(), - }; + Ok(sngs) => match icarus_models::album::collection::parse_album(&metadatapath) { + Ok(album) => { + for song in sngs { + let members = UploadSongMembers { + song: song, + coverart: cover_art.clone(), + token: token.clone(), + album: album.clone(), + }; - match self.upload_song_process(&members).await - { - Ok(o) => { - println!("Response: {o:?}"); - } - Err(err) => { - println!("Error: {err:?}"); - return Err(err); - } + match self.upload_song_process(&members).await { + Ok(o) => { + println!("Response: {o:?}"); + } + Err(err) => { + println!("Error: {err:?}"); + return Err(err); } } + } - Ok(()) - } - Err(err) => { - println!("Error: {err:?}"); - Err(std::io::Error::other(err.to_string())) - } + Ok(()) } - } + Err(err) => { + println!("Error: {err:?}"); + Err(std::io::Error::other(err.to_string())) + } + }, Err(error) => { println!("Error: {error:?}"); Err(std::io::Error::other(error.to_string())) -- 2.47.3