Refactoring #67

Merged
phoenix merged 9 commits from refactoring into main 2025-10-26 19:49:31 +00:00
Showing only changes of commit be18ba8254 - Show all commits

View File

@@ -141,12 +141,8 @@ pub async fn prep_song(
Ok(response) => { Ok(response) => {
let bod = &response.data[0]; let bod = &response.data[0];
match process_coverart(app, &queued_song.id, bod).await { match process_coverart(app, &queued_song.id, bod).await {
Ok(qc) => { Ok(qc) => Ok((queued_song, qc, bod.metadata.clone())),
Ok((queued_song, qc, bod.metadata.clone())) Err(err) => Err(err),
}
Err(err) => {
Err(err)
}
} }
} }
Err(err) => Err(err), Err(err) => Err(err),
@@ -165,72 +161,86 @@ pub async fn prep_song(
pub async fn process_coverart( pub async fn process_coverart(
app: &crate::config::App, app: &crate::config::App,
queued_song_id: &uuid::Uuid, queued_song_id: &uuid::Uuid,
queued_item: &crate::api::get_metadata_queue::response::QueueItem queued_item: &crate::api::get_metadata_queue::response::QueueItem,
) -> Result< ) -> Result<crate::queued_item::QueuedCoverArt, reqwest::Error> {
crate::queued_item::QueuedCoverArt let id = queued_item.id;
, reqwest::Error> { let created_at = queued_item.created_at;
let metadata = &queued_item.metadata;
println!("Id: {id:?}");
println!("Metadata: {metadata:?}");
println!("Created at: {created_at:?}");
let id = queued_item.id; println!("Getting coverart queue");
let created_at = queued_item.created_at; match crate::api::get_coverart_queue::get(app, queued_song_id).await {
let metadata = &queued_item.metadata; Ok(response) => {
println!("Id: {id:?}"); match response
println!("Metadata: {metadata:?}"); .json::<crate::api::get_coverart_queue::response::Response>()
println!("Created at: {created_at:?}"); .await
{
Ok(response) => {
let coverart_queue = &response.data[0];
let coverart_queue_id = coverart_queue.id;
println!("Coverart queue Id: {coverart_queue_id:?}");
println!("Getting coverart queue"); match crate::api::get_coverart_queue::get_data(app, &coverart_queue_id).await {
match crate::api::get_coverart_queue::get(app, queued_song_id).await { Ok(response) => {
Ok(response) => { match crate::api::parsing::parse_response_into_bytes(response).await {
match response.json::<crate::api::get_coverart_queue::response::Response>().await { Ok(coverart_queue_bytes) => {
Ok(response) => { let queued_coverart = init_queued_coverart(
let coverart_queue = &response.data[0]; &coverart_queue_id,
let coverart_queue_id = coverart_queue.id; &coverart_queue.file_type,
println!("Coverart queue Id: {coverart_queue_id:?}"); coverart_queue_bytes,
)
.await;
println!(
"Saved coverart queue file at: {:?}",
queued_coverart.path
);
match crate::api::get_coverart_queue::get_data(app, &coverart_queue_id).await { Ok(queued_coverart)
Ok(response) => match crate::api::parsing::parse_response_into_bytes(response).await { }
Ok(coverart_queue_bytes) => { Err(err) => Err(err),
let queued_coverart = init_queued_coverart(&coverart_queue_id, &coverart_queue.file_type, coverart_queue_bytes).await; }
println!("Saved coverart queue file at: {:?}", queued_coverart.path); }
Err(err) => Err(err),
Ok(queued_coverart) }
} }
Err(err) => Err(err) Err(err) => Err(err),
} }
Err(err) => Err(err) }
} Err(err) => Err(err),
} }
Err(err) => Err(err)
}
}
Err(err) => Err(err),
}
} }
async fn init_queued_coverart(coverart_queue_id: &uuid::Uuid, file_type: &str, bytes: Vec<u8>) -> crate::queued_item::QueuedCoverArt { async fn init_queued_coverart(
// TODO: Consider separating song and coverart when saving to the filesystem coverart_queue_id: &uuid::Uuid,
let covart_type = if file_type == "png" { file_type: &str,
icarus_models::types::CoverArtTypes::PngExtension bytes: Vec<u8>,
} else if file_type == "jpeg" { ) -> crate::queued_item::QueuedCoverArt {
icarus_models::types::CoverArtTypes::JpegExtension // TODO: Consider separating song and coverart when saving to the filesystem
} else { let covart_type = if file_type == "png" {
// TODO: This doesn't seem right icarus_models::types::CoverArtTypes::PngExtension
icarus_models::types::CoverArtTypes::JpgExtension } else if file_type == "jpeg" {
}; icarus_models::types::CoverArtTypes::JpegExtension
let coverart = icarus_models::coverart::CoverArt { } else {
directory: icarus_envy::environment::get_root_directory().await.value, // TODO: This doesn't seem right
filename: icarus_models::coverart::generate_filename(covart_type, true), icarus_models::types::CoverArtTypes::JpgExtension
data: bytes, };
..Default::default() let coverart = icarus_models::coverart::CoverArt {
}; directory: icarus_envy::environment::get_root_directory().await.value,
coverart.save_to_filesystem().unwrap(); filename: icarus_models::coverart::generate_filename(covart_type, true),
let coverart_queue_fs_path = coverart.get_path().unwrap(); data: bytes,
let queued_coverart = crate::queued_item::QueuedCoverArt { ..Default::default()
id: *coverart_queue_id, };
coverart, coverart.save_to_filesystem().unwrap();
path: coverart_queue_fs_path let coverart_queue_fs_path = coverart.get_path().unwrap();
}; let queued_coverart = crate::queued_item::QueuedCoverArt {
id: *coverart_queue_id,
coverart,
path: coverart_queue_fs_path,
};
queued_coverart queued_coverart
} }
pub async fn cleanup( pub async fn cleanup(