From 2723b1d6b7d016163315936f0a26e7172d55cd37 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 22:29:38 -0400 Subject: [PATCH 1/8] Updated dependencies --- Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index ed48e4e..3ee966f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,5 @@ serde = { version = "1.0.219", features = ["derive"] } serde_json = "1.0.140" tokio = { version = "1.44.1", features = ["full"] } tokio-util = { version = "0.7.14", features = ["codec"] } -icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.2.0" } +uuid = { version = "1.16.0", features = ["v4", "serde"] } +icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.3.0-devel-8fbd92620e-111" } -- 2.47.3 From a04163ee675104c49c4fdec267970725968dbd53 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 22:31:26 -0400 Subject: [PATCH 2/8] Saving changes --- src/managers/commit_manager.rs | 44 ++++++--------------------------- src/managers/token_manager.rs | 2 +- src/syncers/common.rs | 4 +-- src/syncers/delete.rs | 2 +- src/syncers/download.rs | 2 +- src/syncers/retrieve_records.rs | 2 +- src/syncers/upload.rs | 2 +- 7 files changed, 14 insertions(+), 44 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index b464977..3286db3 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -152,7 +152,8 @@ impl CommitManager { let value = &arg.value; if flag == "-D" { - song.id = value.parse::().unwrap(); + song.id = uuid::Uuid::from_str(value.as_str()).unwrap(); + // value.parse::().unwrap(); } } @@ -175,7 +176,7 @@ impl CommitManager { fn download_song(&self) { println!("Deleting song"); let dwn = self.ica_action.retrieve_flag_value(&String::from("-b")); - let id: i32 = dwn.parse::().unwrap(); + let id = uuid::Uuid::from_str(dwn.as_str()).unwrap(); let mut prsr = parsers::api_parser::APIParser { api: models::api::API::default(), @@ -337,7 +338,7 @@ impl CommitManager { } let mut cover_art = icarus_models::coverart::CoverArt { - id: 0, + id: uuid::Uuid::nil(), title: String::new(), path: cover_path.clone(), data: Vec::new(), @@ -430,7 +431,7 @@ impl CommitManager { }; songs.push(icarus_models::song::Song { - id: -1, + id: uuid::Uuid::nil(), title: track.title.clone(), artist: track.artist.clone(), disc: track.disc.clone(), @@ -471,15 +472,8 @@ impl CommitManager { panic!("Directory does not exist"); } - let mut cover_art = icarus_models::coverart::CoverArt { - id: 0, - title: String::new(), - path: match self.get_cover_art_path(&sourcepath) { - Ok(o) => o, - Err(_) => String::new(), - }, - data: Vec::new(), - }; + let mut cover_art = + icarus_models::coverart::init::init_coverart_only_path(sourcepath.clone()); let metadatapath = match self.get_metadata_path(&sourcepath) { Ok(o) => o, Err(_) => String::new(), @@ -565,30 +559,6 @@ impl CommitManager { return En::Other; } - fn get_cover_art_path(&self, directory_path: &String) -> Result { - for entry in read_dir(std::path::Path::new(directory_path))? { - let entry = entry?; - - let file_type = entry.file_type(); - let file_name = entry.file_name(); - - println!("file type: {:?}", file_type); - println!("file name: {:?}", file_name); - - match self.find_file_extension(&file_name) { - En::ImageFile => { - let directory_part = directory_path.clone(); - let fname = utilities::string::o_to_string(&file_name); - let fullpath = directory_part + "/" + &fname.unwrap(); - return Ok(fullpath); - } - _ => {} - } - } - - Ok(String::new()) - } - fn get_metadata_path(&self, directory_path: &String) -> Result { for entry in read_dir(std::path::Path::new(directory_path))? { let entry = entry?; diff --git a/src/managers/token_manager.rs b/src/managers/token_manager.rs index ef65c81..b66b6b8 100644 --- a/src/managers/token_manager.rs +++ b/src/managers/token_manager.rs @@ -29,7 +29,7 @@ impl TokenManager { println!("URL: {}", url); let mut token = icarus_models::token::AccessToken { - user_id: -1, + user_id: uuid::Uuid::nil(), username: String::new(), token: String::new(), token_type: String::new(), diff --git a/src/syncers/common.rs b/src/syncers/common.rs index 9fde0dd..f960074 100644 --- a/src/syncers/common.rs +++ b/src/syncers/common.rs @@ -1,6 +1,6 @@ use crate::models; -pub fn retrieve_url(api: &models::api::API, with_id: bool, id: i32) -> String { +pub fn retrieve_url(api: &models::api::API, with_id: bool, id: &uuid::Uuid) -> String { if with_id { retrieve_url_with_id(&api, id) } else { @@ -19,7 +19,7 @@ fn retrieve_url_reg(api: &models::api::API) -> String { return url; } -fn retrieve_url_with_id(api: &models::api::API, id: i32) -> String { +fn retrieve_url_with_id(api: &models::api::API, id: &uuid::Uuid) -> String { let mut url: String = String::from(&api.url); url += &String::from("api/"); url += &String::from(&api.version); diff --git a/src/syncers/delete.rs b/src/syncers/delete.rs index f72561b..a62f24b 100644 --- a/src/syncers/delete.rs +++ b/src/syncers/delete.rs @@ -25,7 +25,7 @@ impl Delete { song: &icarus_models::song::Song, ) -> Result { self.api.endpoint = "song/data/delete".to_owned(); - let url = syncers::common::retrieve_url(&self.api, true, song.id); + let url = syncers::common::retrieve_url(&self.api, true, &song.id); let client = reqwest::Client::builder().build().unwrap(); let access_token = token.bearer_token(); let response = client diff --git a/src/syncers/download.rs b/src/syncers/download.rs index a3a4629..ba1116b 100644 --- a/src/syncers/download.rs +++ b/src/syncers/download.rs @@ -28,7 +28,7 @@ impl Download { song: &icarus_models::song::Song, ) -> Result { self.api.endpoint = String::from("song/data/download"); - let url = syncers::common::retrieve_url(&self.api, true, song.id); + let url = syncers::common::retrieve_url(&self.api, true, &song.id); let access_token = token.bearer_token(); let client = reqwest::Client::builder().build().unwrap(); diff --git a/src/syncers/retrieve_records.rs b/src/syncers/retrieve_records.rs index 84df6eb..f018337 100644 --- a/src/syncers/retrieve_records.rs +++ b/src/syncers/retrieve_records.rs @@ -22,7 +22,7 @@ impl RetrieveRecords { token: &icarus_models::token::AccessToken, ) -> Result, Error> { self.api.endpoint = String::from("song"); - let url = syncers::common::retrieve_url(&self.api, false, 0); + let url = syncers::common::retrieve_url(&self.api, false, &uuid::Uuid::nil()); let access_token = token.bearer_token(); let client = reqwest::Client::builder().build().unwrap(); diff --git a/src/syncers/upload.rs b/src/syncers/upload.rs index f17a6ef..f0ef628 100644 --- a/src/syncers/upload.rs +++ b/src/syncers/upload.rs @@ -26,7 +26,7 @@ impl Upload { cover: &icarus_models::coverart::CoverArt, ) -> Result { self.api.endpoint = String::from("song/data/upload/with/data"); - let url = syncers::common::retrieve_url(&self.api, false, 0); + let url = syncers::common::retrieve_url(&self.api, false, &uuid::Uuid::new_v4()); let access_token = token.bearer_token(); if url.is_empty() { -- 2.47.3 From 3012cfb94dab5b3ebb87a582525bdedf7ce420fd Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 22:40:56 -0400 Subject: [PATCH 3/8] More changes --- src/syncers/common.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/syncers/common.rs b/src/syncers/common.rs index f960074..b851cff 100644 --- a/src/syncers/common.rs +++ b/src/syncers/common.rs @@ -10,6 +10,7 @@ pub fn retrieve_url(api: &models::api::API, with_id: bool, id: &uuid::Uuid) -> S fn retrieve_url_reg(api: &models::api::API) -> String { let mut url: String = String::from(&api.url); + url += &String::from("/"); url += &String::from("api/"); url += &String::from(&api.version); url += &String::from("/"); @@ -21,6 +22,7 @@ fn retrieve_url_reg(api: &models::api::API) -> String { fn retrieve_url_with_id(api: &models::api::API, id: &uuid::Uuid) -> String { let mut url: String = String::from(&api.url); + url += &String::from("/"); url += &String::from("api/"); url += &String::from(&api.version); url += &String::from("/"); -- 2.47.3 From 374e2482b99e5fb0d4d4bf8f57d2c26873b6c4f2 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 22:56:13 -0400 Subject: [PATCH 4/8] More changes --- src/managers/commit_manager.rs | 30 +++++++++++++++++++++++++++++- src/syncers/upload.rs | 2 +- src/utilities/checks.rs | 2 +- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 3286db3..8fd8abf 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -472,8 +472,12 @@ impl CommitManager { panic!("Directory does not exist"); } + let coverart_path = match self.get_cover_art_path(&sourcepath) { + Ok(path) => path, + Err(_) => String::new(), + }; let mut cover_art = - icarus_models::coverart::init::init_coverart_only_path(sourcepath.clone()); + icarus_models::coverart::init::init_coverart_only_path(coverart_path.clone()); let metadatapath = match self.get_metadata_path(&sourcepath) { Ok(o) => o, Err(_) => String::new(), @@ -511,6 +515,30 @@ impl CommitManager { Ok(()) } + fn get_cover_art_path(&self, directory_path: &String) -> Result { + for entry in read_dir(std::path::Path::new(directory_path))? { + let entry = entry?; + + let file_type = entry.file_type(); + let file_name = entry.file_name(); + + println!("file type: {:?}", file_type); + println!("file name: {:?}", file_name); + + match self.find_file_extension(&file_name) { + En::ImageFile => { + let directory_part = directory_path.clone(); + let fname = utilities::string::o_to_string(&file_name); + let fullpath = directory_part + "/" + &fname.unwrap(); + return Ok(fullpath); + } + _ => {} + } + } + + Ok(String::new()) + } + fn find_file_extension(&self, file_name: &std::ffi::OsString) -> En { let file_name_str = Some(file_name.clone().into_string()); diff --git a/src/syncers/upload.rs b/src/syncers/upload.rs index f0ef628..f4a6e7d 100644 --- a/src/syncers/upload.rs +++ b/src/syncers/upload.rs @@ -26,7 +26,7 @@ impl Upload { cover: &icarus_models::coverart::CoverArt, ) -> Result { self.api.endpoint = String::from("song/data/upload/with/data"); - let url = syncers::common::retrieve_url(&self.api, false, &uuid::Uuid::new_v4()); + let url = syncers::common::retrieve_url(&self.api, false, &uuid::Uuid::nil()); let access_token = token.bearer_token(); if url.is_empty() { diff --git a/src/utilities/checks.rs b/src/utilities/checks.rs index 5495b95..76f69a5 100644 --- a/src/utilities/checks.rs +++ b/src/utilities/checks.rs @@ -23,7 +23,7 @@ impl Checks { index += 1; } - return index; + index } } -- 2.47.3 From b76d96d5323f3cdeaf0c03a0f9ae214d9ffa912c Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 23:10:19 -0400 Subject: [PATCH 5/8] Updated dependencies --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 3ee966f..5fd57da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,4 +17,4 @@ serde_json = "1.0.140" tokio = { version = "1.44.1", features = ["full"] } tokio-util = { version = "0.7.14", features = ["codec"] } uuid = { version = "1.16.0", features = ["v4", "serde"] } -icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.3.0-devel-8fbd92620e-111" } +icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.3.0-devel-6a0135c6fa-111" } -- 2.47.3 From 2eca65b4640057fb14849225e982d23f4b57bb3c Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 23:10:27 -0400 Subject: [PATCH 6/8] Updated readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 578918c..dce72b0 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ The program has been built and can be executed by the binary file *icarus-dm*. F ### Downloading Song ```BASH -icarus-dm download -u spacecadet -p stellar40 -h https://icarus.com -b 15 +icarus-dm download -u spacecadet -p stellar40 -h https://icarus.com -b e8407fc6-edd2-44c1-993f-08dd7324d91a ``` ### Uploading Song with metadata @@ -66,7 +66,7 @@ icarus-dm retrieve -u spacecadet -p stellar40 -h https://icarus.com -rt songs ### Deleting Song ```BASH -icarus-dm delete -u spacecadet -p stellar40 -h https://icarus.com -D 15 +icarus-dm delete -u spacecadet -p stellar40 -h https://icarus.com -D e8407fc6-edd2-44c1-993f-08dd7324d91a ``` -- 2.47.3 From 3910ad23c342d642565f691b4f8fe8d8a2db6043 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 23:10:51 -0400 Subject: [PATCH 7/8] Saving changes --- src/managers/commit_manager.rs | 2 +- src/syncers/common.rs | 1 - src/syncers/download.rs | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 8fd8abf..285f8cc 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -446,7 +446,7 @@ impl CommitManager { audio_type: String::from("FLAC"), directory: source_directory.clone(), filename: filename, - user_id: -1, + user_id: uuid::Uuid::nil(), data: Vec::new(), date_created: String::new(), }); diff --git a/src/syncers/common.rs b/src/syncers/common.rs index b851cff..59933ca 100644 --- a/src/syncers/common.rs +++ b/src/syncers/common.rs @@ -22,7 +22,6 @@ fn retrieve_url_reg(api: &models::api::API) -> String { fn retrieve_url_with_id(api: &models::api::API, id: &uuid::Uuid) -> String { let mut url: String = String::from(&api.url); - url += &String::from("/"); url += &String::from("api/"); url += &String::from(&api.version); url += &String::from("/"); diff --git a/src/syncers/download.rs b/src/syncers/download.rs index ba1116b..7e92bc8 100644 --- a/src/syncers/download.rs +++ b/src/syncers/download.rs @@ -31,6 +31,8 @@ impl Download { let url = syncers::common::retrieve_url(&self.api, true, &song.id); let access_token = token.bearer_token(); + println!("Url: {:?}", url); + let client = reqwest::Client::builder().build().unwrap(); match client -- 2.47.3 From fd286edd95dbbc0dcb01511e005a111dcd332e00 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 3 Apr 2025 23:14:17 -0400 Subject: [PATCH 8/8] Cleanup --- src/managers/commit_manager.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 285f8cc..8357384 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -153,7 +153,6 @@ impl CommitManager { if flag == "-D" { song.id = uuid::Uuid::from_str(value.as_str()).unwrap(); - // value.parse::().unwrap(); } } -- 2.47.3