From 9f3e49bd015973c31c38d3a0b45422a2eb00c98b Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 30 Oct 2025 16:32:13 -0400 Subject: [PATCH 1/4] tsk-202: Make downloaded CoverArt filename random --- src/callers/coverart.rs | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/callers/coverart.rs b/src/callers/coverart.rs index 118e23f..df14443 100644 --- a/src/callers/coverart.rs +++ b/src/callers/coverart.rs @@ -69,18 +69,35 @@ pub mod endpoint { match crate::repo::song::get_song(&pool, &song_id).await { Ok(song) => { let directory = icarus_envy::environment::get_root_directory().await.value; + let file_type = icarus_meta::detection::coverart::file_type_from_data(&data).unwrap(); + let coverart_type = if file_type.file_type + == icarus_meta::detection::coverart::constants::JPEG_TYPE + { + icarus_models::types::CoverArtType::JpegExtension + } else if file_type.file_type + == icarus_meta::detection::coverart::constants::JPG_TYPE + { + icarus_models::types::CoverArtType::JpgExtension + } else if file_type.file_type + == icarus_meta::detection::coverart::constants::PNG_TYPE + { + icarus_models::types::CoverArtType::PngExtension + } else { + response.message = String::from("Invalid CoverArt type"); + return ( + axum::http::StatusCode::INTERNAL_SERVER_ERROR, + axum::Json(response) + ); + }; // TODO: Make this random and the file extension should not be hard coded - let filename = format!("{}-coverart.jpeg", &song.filename[..8]); + let filename = icarus_models::coverart::generate_filename(coverart_type, true).unwrap(); let mut coverart = icarus_models::coverart::init::init_coverart_dir_and_filename( &directory, &filename, ); coverart.title = song.album.clone(); - coverart.file_type = - icarus_meta::detection::coverart::file_type_from_data(&data) - .unwrap() - .file_type; + coverart.file_type = file_type.file_type; coverart.data = data; match coverart.save_to_filesystem() { -- 2.47.3 From 677822d1719ef50f0617681c1132eb88d0df8d76 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 30 Oct 2025 16:41:34 -0400 Subject: [PATCH 2/4] tsk-202: Cleanup --- src/callers/coverart.rs | 44 +++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/callers/coverart.rs b/src/callers/coverart.rs index df14443..765b1b6 100644 --- a/src/callers/coverart.rs +++ b/src/callers/coverart.rs @@ -69,28 +69,30 @@ pub mod endpoint { match crate::repo::song::get_song(&pool, &song_id).await { Ok(song) => { let directory = icarus_envy::environment::get_root_directory().await.value; - let file_type = icarus_meta::detection::coverart::file_type_from_data(&data).unwrap(); + let file_type = + icarus_meta::detection::coverart::file_type_from_data(&data).unwrap(); let coverart_type = if file_type.file_type - == icarus_meta::detection::coverart::constants::JPEG_TYPE - { - icarus_models::types::CoverArtType::JpegExtension - } else if file_type.file_type - == icarus_meta::detection::coverart::constants::JPG_TYPE - { - icarus_models::types::CoverArtType::JpgExtension - } else if file_type.file_type - == icarus_meta::detection::coverart::constants::PNG_TYPE - { - icarus_models::types::CoverArtType::PngExtension - } else { - response.message = String::from("Invalid CoverArt type"); - return ( - axum::http::StatusCode::INTERNAL_SERVER_ERROR, - axum::Json(response) - ); - }; - // TODO: Make this random and the file extension should not be hard coded - let filename = icarus_models::coverart::generate_filename(coverart_type, true).unwrap(); + == icarus_meta::detection::coverart::constants::JPEG_TYPE + { + icarus_models::types::CoverArtType::JpegExtension + } else if file_type.file_type + == icarus_meta::detection::coverart::constants::JPG_TYPE + { + icarus_models::types::CoverArtType::JpgExtension + } else if file_type.file_type + == icarus_meta::detection::coverart::constants::PNG_TYPE + { + icarus_models::types::CoverArtType::PngExtension + } else { + response.message = String::from("Invalid CoverArt type"); + return ( + axum::http::StatusCode::INTERNAL_SERVER_ERROR, + axum::Json(response), + ); + }; + let filename = + icarus_models::coverart::generate_filename(coverart_type, true) + .unwrap(); let mut coverart = icarus_models::coverart::init::init_coverart_dir_and_filename( -- 2.47.3 From 92cf4e62ffa642014ce8b3e31e6a9d3d766ce705 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 30 Oct 2025 16:41:43 -0400 Subject: [PATCH 3/4] tsk-202: Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c47abf5..672fd45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -964,7 +964,7 @@ dependencies = [ [[package]] name = "icarus" -version = "0.3.14" +version = "0.3.16" dependencies = [ "axum", "axum-extra", diff --git a/Cargo.toml b/Cargo.toml index 53c8c25..7517d72 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus" -version = "0.3.14" +version = "0.3.16" edition = "2024" rust-version = "1.90" -- 2.47.3 From 88fd94ffe2f06b08e652cd8456844bf5faf04b4d Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 30 Oct 2025 16:43:40 -0400 Subject: [PATCH 4/4] tsk-202: Version bump down --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 672fd45..b83b52e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -964,7 +964,7 @@ dependencies = [ [[package]] name = "icarus" -version = "0.3.16" +version = "0.3.15" dependencies = [ "axum", "axum-extra", diff --git a/Cargo.toml b/Cargo.toml index 7517d72..3c2229f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus" -version = "0.3.16" +version = "0.3.15" edition = "2024" rust-version = "1.90" -- 2.47.3