tsk-54: Make Song file random when updating queued song #65

Merged
phoenix merged 5 commits from tsk-54 into main 2025-10-22 18:09:49 +00:00
2 changed files with 37 additions and 37 deletions
Showing only changes of commit a907547b2d - Show all commits

View File

@@ -324,7 +324,7 @@ async fn prep_song(
match api::get_coverart_queue::get_data(app, &coverart_queue_id).await {
Ok(response) => match api::parsing::parse_response_into_bytes(response).await {
Ok(coverart_queue_bytes) => {
let (directory, filename) = generate_coverart_queue_dir_and_filename(&coverart_queue.file_type).await;
let (directory, filename) = util::generate_coverart_queue_dir_and_filename(&coverart_queue.file_type).await;
let coverart = icarus_models::coverart::CoverArt {
directory,
filename,
@@ -381,39 +381,3 @@ async fn prep_song(
Err(err) => Err(err),
}
}
// TODO: Consider having something like this in icarus_models
pub async fn generate_coverart_queue_dir_and_filename(file_type: &str) -> (String, String) {
use rand::Rng;
let mut filename: String = String::new();
let filename_len = 10;
let some_chars: String = String::from("abcdefghij0123456789");
let mut rng = rand::rng();
for _ in 0..filename_len {
let random_number: i32 = rng.random_range(0..=19);
let index = random_number as usize;
let rando_char = some_chars.chars().nth(index);
if let Some(c) = rando_char {
filename.push(c);
}
}
filename += if file_type == icarus_meta::detection::coverart::constants::JPEG_TYPE
|| file_type == icarus_meta::detection::coverart::constants::JPG_TYPE
{
icarus_models::constants::file_extensions::image::JPEGEXTENSION
} else if file_type == icarus_meta::detection::coverart::constants::PNG_TYPE {
icarus_models::constants::file_extensions::image::PNGEXTENSION
} else {
""
};
// TODO: Consider separating song and coverart when saving to the filesystem
let directory = icarus_envy::environment::get_root_directory().await.value;
(directory, filename)
}

View File

@@ -4,3 +4,39 @@ pub fn path_buf_to_string(path: &std::path::Path) -> String {
None => String::new(),
}
}
// TODO: Consider having something like this in icarus_models
pub async fn generate_coverart_queue_dir_and_filename(file_type: &str) -> (String, String) {
use rand::Rng;
let mut filename: String = String::new();
let filename_len = 10;
let some_chars: String = String::from("abcdefghij0123456789");
let mut rng = rand::rng();
for _ in 0..filename_len {
let random_number: i32 = rng.random_range(0..=19);
let index = random_number as usize;
let rando_char = some_chars.chars().nth(index);
if let Some(c) = rando_char {
filename.push(c);
}
}
filename += if file_type == icarus_meta::detection::coverart::constants::JPEG_TYPE
|| file_type == icarus_meta::detection::coverart::constants::JPG_TYPE
{
icarus_models::constants::file_extensions::image::JPEGEXTENSION
} else if file_type == icarus_meta::detection::coverart::constants::PNG_TYPE {
icarus_models::constants::file_extensions::image::PNGEXTENSION
} else {
""
};
// TODO: Consider separating song and coverart when saving to the filesystem
let directory = icarus_envy::environment::get_root_directory().await.value;
(directory, filename)
}