From 3c6675de1eaaf22f5619144d0f900f8ddb5788b4 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 15:55:52 -0400 Subject: [PATCH 1/9] tsk-72: Adding directory and filename to coverart --- src/coverart.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/coverart.rs b/src/coverart.rs index 06ac2fc..a74e6d2 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -7,6 +7,9 @@ pub struct CoverArt { pub id: uuid::Uuid, pub title: String, #[serde(skip)] + pub directory: String, + pub filename: String, + #[serde(skip)] pub path: String, #[serde(skip)] pub data: Vec, @@ -23,6 +26,7 @@ pub mod init { path: path.clone(), data: Vec::new(), song_id: uuid::Uuid::nil(), + ..Default::default() } } } -- 2.43.0 From 146014f9f33fe8d606e56b340f306443e0a1f79f Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 16:08:43 -0400 Subject: [PATCH 2/9] Updated release tagging workflow --- .gitea/workflows/tag_release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/tag_release.yaml b/.gitea/workflows/tag_release.yaml index dafd1bf..52ebe9c 100644 --- a/.gitea/workflows/tag_release.yaml +++ b/.gitea/workflows/tag_release.yaml @@ -4,6 +4,7 @@ on: pull_request: branches: - main + - next-v0.8 jobs: release: -- 2.43.0 From 9db4810a7b98a1e1020944e42257181a51401007 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 16:09:41 -0400 Subject: [PATCH 3/9] Updated build workflow --- .gitea/workflows/workflow.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index 0db5383..bc38675 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -7,6 +7,7 @@ on: pull_request: branches: - main + - next-v0.8 jobs: check: -- 2.43.0 From 01f24bcda66e0d088d6d161430d30892f44f236c Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 19:57:39 -0400 Subject: [PATCH 4/9] tsk-72: Added method to get path --- src/coverart.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/coverart.rs b/src/coverart.rs index a74e6d2..0c6505e 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -57,6 +57,32 @@ impl CoverArt { )) } } + + /// Gets the path of the CoverArt + pub fn get_path(&self) -> Result { + if self.directory.is_empty() { + return Err(std::io::Error::other("Directory has not been initialized")); + } else if self.filename.is_empty() { + return Err(std::io::Error::other("Filename has not bee initialized")); + } + + let directory = &self.directory; + let last_index = directory.len() - 1; + + if let Some(character) = directory.chars().nth(last_index) { + let buffer = if character != '/' { + directory.clone() + "/" + } else { + directory.clone() + }; + + Ok(buffer + &self.filename.clone()) + } else { + Err(std::io::Error::other( + "Could not access last character of directory", + )) + } + } } pub mod io { -- 2.43.0 From de7e27251c2ae76e47cb0d911396281f5b3e8869 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 19:59:27 -0400 Subject: [PATCH 5/9] tsk-72: Formatting --- src/coverart.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coverart.rs b/src/coverart.rs index 0c6505e..8e77d91 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -76,7 +76,7 @@ impl CoverArt { directory.clone() }; - Ok(buffer + &self.filename.clone()) + Ok(buffer + &self.filename.clone()) } else { Err(std::io::Error::other( "Could not access last character of directory", -- 2.43.0 From 1f047f60d6c4ab9702333a60a6064f6c41b80335 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 20:12:41 -0400 Subject: [PATCH 6/9] tsk-72: Removed path and made some related changes: --- src/coverart.rs | 70 ++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/src/coverart.rs b/src/coverart.rs index 8e77d91..045ec85 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -10,22 +10,18 @@ pub struct CoverArt { pub directory: String, pub filename: String, #[serde(skip)] - pub path: String, - #[serde(skip)] pub data: Vec, pub song_id: uuid::Uuid, } pub mod init { - use crate::coverart::CoverArt; + use super::CoverArt; - pub fn init_coverart_only_path(path: String) -> CoverArt { + /// Initializes the CoverArt with just the directory and filename + pub fn init_coverart_dir_and_filename(directory: &str, filename: &str) -> CoverArt { CoverArt { - id: uuid::Uuid::nil(), - title: String::new(), - path: path.clone(), - data: Vec::new(), - song_id: uuid::Uuid::nil(), + directory: String::from(directory), + filename: String::from(filename), ..Default::default() } } @@ -34,27 +30,37 @@ pub mod init { impl CoverArt { /// Saves the coverart to the filesystem pub fn save_to_filesystem(&self) -> Result<(), std::io::Error> { - match std::fs::File::create(&self.path) { - Ok(mut file) => match file.write_all(&self.data) { - Ok(_) => Ok(()), - Err(err) => Err(err), - }, - Err(err) => Err(err), + match self.get_path() { + Ok(path) => { + match std::fs::File::create(&path) { + Ok(mut file) => match file.write_all(&self.data) { + Ok(_) => Ok(()), + Err(err) => Err(err), + }, + Err(err) => Err(err), + } + } + Err(err) => Err(err) } } /// Removes the coverart from the filesystem pub fn remove_from_filesystem(&self) -> Result<(), std::io::Error> { - let p = std::path::Path::new(&self.path); - if p.exists() { - match std::fs::remove_file(p) { - Ok(_) => Ok(()), - Err(err) => Err(err), + match self.get_path() { + Ok(path) => { + let p = std::path::Path::new(&path); + if p.exists() { + match std::fs::remove_file(p) { + Ok(_) => Ok(()), + Err(err) => Err(err), + } + } else { + Err(std::io::Error::other( + "Cannot delete file that does not exist", + )) + } } - } else { - Err(std::io::Error::other( - "Cannot delete file that does not exist", - )) + Err(err) => Err(err) } } @@ -90,12 +96,16 @@ pub mod io { /// Gets the raw data of the cover art pub fn to_data(coverart: &super::CoverArt) -> Result, std::io::Error> { - let path: &String = &coverart.path; - let mut file = std::fs::File::open(path)?; - let mut buffer = Vec::new(); - match file.read_to_end(&mut buffer) { - Ok(_) => Ok(buffer), - Err(err) => Err(err), + match coverart.get_path() { + Ok(path) => { + let mut file = std::fs::File::open(path)?; + let mut buffer = Vec::new(); + match file.read_to_end(&mut buffer) { + Ok(_) => Ok(buffer), + Err(err) => Err(err), + } + } + Err(err) => Err(err) } } } -- 2.43.0 From fb554251f9bebfe9251780374563800a406d9aad Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 20:13:08 -0400 Subject: [PATCH 7/9] tsk-72: Code formatting --- src/coverart.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/coverart.rs b/src/coverart.rs index 045ec85..d9636ad 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -31,16 +31,14 @@ impl CoverArt { /// Saves the coverart to the filesystem pub fn save_to_filesystem(&self) -> Result<(), std::io::Error> { match self.get_path() { - Ok(path) => { - match std::fs::File::create(&path) { - Ok(mut file) => match file.write_all(&self.data) { - Ok(_) => Ok(()), - Err(err) => Err(err), - }, + Ok(path) => match std::fs::File::create(&path) { + Ok(mut file) => match file.write_all(&self.data) { + Ok(_) => Ok(()), Err(err) => Err(err), - } - } - Err(err) => Err(err) + }, + Err(err) => Err(err), + }, + Err(err) => Err(err), } } @@ -60,7 +58,7 @@ impl CoverArt { )) } } - Err(err) => Err(err) + Err(err) => Err(err), } } @@ -105,7 +103,7 @@ pub mod io { Err(err) => Err(err), } } - Err(err) => Err(err) + Err(err) => Err(err), } } } -- 2.43.0 From d3510a1dd271de0d3dcc94ef0429573fae4828b2 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 20:18:10 -0400 Subject: [PATCH 8/9] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5f275a9..9b33e3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -149,7 +149,7 @@ checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "icarus_models" -version = "0.7.0" +version = "0.7.1" dependencies = [ "josekit", "rand", diff --git a/Cargo.toml b/Cargo.toml index 5c6418d..5637ea4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_models" -version = "0.7.0" +version = "0.7.1" edition = "2024" rust-version = "1.90" description = "models used for the icarus project" -- 2.43.0 From 3f66f4ee7b98f3871221d3fbca14f11de482c1ff Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 18 Oct 2025 20:25:51 -0400 Subject: [PATCH 9/9] tsk-72: Test fix --- src/coverart.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/coverart.rs b/src/coverart.rs index d9636ad..259ed35 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -114,9 +114,11 @@ mod tests { #[test] fn test_cover_art_image() { - let path: String = String::from("somepath"); - let coverart = coverart::init::init_coverart_only_path(path.clone()); + let dir = String::from("./"); + let filename = String::from("CoverArt.png"); + let coverart = coverart::init::init_coverart_dir_and_filename(&dir, &filename); - assert_eq!(path, coverart.path); + assert_eq!(dir, coverart.directory); + assert_eq!(filename, coverart.filename); } } -- 2.43.0