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" 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 diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 2740d1b..713616f 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")); @@ -558,27 +560,39 @@ impl CommitManager { cover_art.data = cover_art.to_data().unwrap(); 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:?}"); + 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); + } } - 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 {