tsk-54: Make Song file random when updating queued song #65
38
src/main.rs
38
src/main.rs
@@ -324,7 +324,7 @@ async fn prep_song(
|
|||||||
match api::get_coverart_queue::get_data(app, &coverart_queue_id).await {
|
match api::get_coverart_queue::get_data(app, &coverart_queue_id).await {
|
||||||
Ok(response) => match api::parsing::parse_response_into_bytes(response).await {
|
Ok(response) => match api::parsing::parse_response_into_bytes(response).await {
|
||||||
Ok(coverart_queue_bytes) => {
|
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 {
|
let coverart = icarus_models::coverart::CoverArt {
|
||||||
directory,
|
directory,
|
||||||
filename,
|
filename,
|
||||||
@@ -381,39 +381,3 @@ async fn prep_song(
|
|||||||
Err(err) => Err(err),
|
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)
|
|
||||||
}
|
|
||||||
|
36
src/util.rs
36
src/util.rs
@@ -4,3 +4,39 @@ pub fn path_buf_to_string(path: &std::path::Path) -> String {
|
|||||||
None => String::new(),
|
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)
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user