This commit is contained in:
kdeng00
2025-08-27 18:47:32 -04:00
parent f208f511a5
commit 5a55396db0
2 changed files with 39 additions and 52 deletions
+11 -28
View File
@@ -314,7 +314,9 @@ impl CommitManager {
println!("metadata path: {metadata_path}"); println!("metadata path: {metadata_path}");
println!("cover art path: {coverpath}"); println!("cover art path: {coverpath}");
let _ = self.sing_target_upload(&songpath, &track_id, &metadata_path, &coverpath).await; let _ = self
.sing_target_upload(&songpath, &track_id, &metadata_path, &coverpath)
.await;
} else if multitarget { } else if multitarget {
let _ = self.multi_target_upload(&uni).await; let _ = self.multi_target_upload(&uni).await;
} else { } else {
@@ -376,32 +378,9 @@ impl CommitManager {
cover_art.data = cover_art.to_data().unwrap(); cover_art.data = cover_art.to_data().unwrap();
// let mut up = syncers::upload::Upload::default(); match self.queue_song(&token, &s).await {
// let host = self.ica_action.retrieve_flag_value(&String::from("-h")); Ok(_) => Ok(()),
// up.set_api(&host); Err(err) => Err(err),
/*
let res = up.upload_song_with_metadata(&token, &s, &cover_art);
match Runtime::new().unwrap().block_on(res) {
Ok(o) => {
println!("Successfully sent {o:?}");
Ok(())
}
Err(er) => {
println!("Some error {er:?}");
Err(std::io::Error::other(er.to_string()))
}
}
*/
let res = self.queue_song(&token, &s).await;
match res {
Ok(val) => {
Ok(())
},
Err(err) => {
Err(err)
}
} }
} }
Err(err) => { Err(err) => {
@@ -419,7 +398,11 @@ impl CommitManager {
} }
} }
async fn queue_song(&self, token: &icarus_models::token::AccessToken, song: &icarus_models::song::Song) -> Result<()> { async fn queue_song(
&self,
token: &icarus_models::token::AccessToken,
song: &icarus_models::song::Song,
) -> Result<()> {
let mut up = syncers::upload::Upload::default(); let mut up = syncers::upload::Upload::default();
let host = self.ica_action.retrieve_flag_value(&String::from("-h")); let host = self.ica_action.retrieve_flag_value(&String::from("-h"));
up.set_api(&host); up.set_api(&host);
+28 -24
View File
@@ -16,7 +16,7 @@ mod response {
#[derive(Debug, serde::Deserialize)] #[derive(Debug, serde::Deserialize)]
pub struct Response { pub struct Response {
pub message: String, pub message: String,
pub data: Vec<uuid::Uuid> pub data: Vec<uuid::Uuid>,
} }
} }
} }
@@ -61,23 +61,23 @@ impl Upload {
} }
} }
pub async fn queue_song(&self, token: &icarus_models::token::AccessToken, song: &icarus_models::song::Song) -> Result<uuid::Uuid, reqwest::Error> { pub async fn queue_song(
&self,
token: &icarus_models::token::AccessToken,
song: &icarus_models::song::Song,
) -> Result<uuid::Uuid, reqwest::Error> {
let songpath = song.song_path().unwrap(); let songpath = song.song_path().unwrap();
let file = tokio::fs::File::open(&songpath).await.unwrap(); let file = tokio::fs::File::open(&songpath).await.unwrap();
let stream = tokio_util::codec::FramedRead::new(file, tokio_util::codec::BytesCodec::new()); let stream = tokio_util::codec::FramedRead::new(file, tokio_util::codec::BytesCodec::new());
let file_body = reqwest::Body::wrap_stream(stream); let file_body = reqwest::Body::wrap_stream(stream);
println!("Song path: {songpath:?}");
println!("Token: {}", token.token);
// let mut song_filename = String::from("audio"); let form = reqwest::multipart::Form::new().part(
// song_filename += icarus_models::constants::file_extensions::audio::DEFAULTMUSICEXTENSION; "file",
reqwest::multipart::Part::stream(file_body)
let form = reqwest::multipart::Form::new() .file_name(song.filename.clone())
.part( .mime_str("application/octet-stream")
"file", .unwrap(),
reqwest::multipart::Part::stream(file_body) );
.file_name(song.filename.clone()).mime_str("application/octet-stream").unwrap(),
);
let endpoint = String::from("api/v2/song/queue"); let endpoint = String::from("api/v2/song/queue");
let url = format!("{}/{endpoint}", self.api.url); let url = format!("{}/{endpoint}", self.api.url);
@@ -92,22 +92,26 @@ impl Upload {
headers.insert("Connection", HeaderValue::from_str("keep-alive").unwrap()); headers.insert("Connection", HeaderValue::from_str("keep-alive").unwrap());
headers.insert("Cache-Control", HeaderValue::from_str("no-cache").unwrap()); headers.insert("Cache-Control", HeaderValue::from_str("no-cache").unwrap());
// let client = reqwest::Client::new(); let client = reqwest::Client::builder()
let client = reqwest::Client::builder().timeout(std::time::Duration::from_secs(300)) .timeout(std::time::Duration::from_secs(300))
.pool_idle_timeout(std::time::Duration::from_secs(30)) .pool_idle_timeout(std::time::Duration::from_secs(30))
.build().unwrap(); .build()
match client.post(url).headers(headers).multipart(form).send().await { .unwrap();
match client
.post(url)
.headers(headers)
.multipart(form)
.send()
.await
{
Ok(response) => match response.json::<response::queue_song::Response>().await { Ok(response) => match response.json::<response::queue_song::Response>().await {
Ok(resp) => { Ok(resp) => {
println!("Message: {:?}", resp.message);
Ok(resp.data[0]) Ok(resp.data[0])
} }
Err(err) => { Err(err) => Err(err),
Err(err) },
} Err(err) => Err(err),
}
Err(err) => {
Err(err)
}
} }
} }