Download song (#65)

* Got download functionality working

* Updated readme

* Code formatting

* Updated help

* Version bump
This commit was merged in pull request #65.
This commit is contained in:
KD
2025-08-30 11:52:04 -04:00
committed by GitHub
parent 809f27cf01
commit ec0cbd7da0
7 changed files with 14 additions and 15 deletions
+2 -1
View File
@@ -12,7 +12,8 @@ pub fn print_help() {
Required for all actions
-u username
-p password
-h host
-h api host
-ha auth api host
Required for upload with metadata
-s path of song
+3 -2
View File
@@ -196,6 +196,7 @@ impl CommitManager {
let auth_api = prsr.retrieve_api(parsers::api_parser::APIType::Auth);
let token = self.parse_token(&auth_api).await;
println!("Message: {}", token.message);
let api = prsr.retrieve_api(parsers::api_parser::APIType::Main);
let mut dwn_loader = syncers::download::Download { api: api.clone() };
@@ -203,8 +204,8 @@ impl CommitManager {
id: song_id,
..Default::default()
};
let result_fut = dwn_loader.download_song(&token, &song);
match Runtime::new().unwrap().block_on(result_fut) {
match dwn_loader.download_song(&token, &song).await {
Ok(o) => {
println!("Success");
let filename = String::from("audio")
+1 -1
View File
@@ -15,7 +15,7 @@ fn retrieve_url_reg(api: &models::api::Api) -> String {
}
fn retrieve_url_with_id(api: &models::api::Api, id: &uuid::Uuid) -> String {
let url = format!("{}/api/{}/{}/{}", api.url, api.version, api.endpoint, id);
let url = format!("{}api/{}/{}/{}", api.url, api.version, api.endpoint, id);
url
}
+5 -8
View File
@@ -20,7 +20,7 @@ impl Download {
token: &icarus_models::token::AccessToken,
song: &icarus_models::song::Song,
) -> Result<String, MyError> {
self.api.endpoint = String::from("song/data/download");
self.api.endpoint = String::from("song/download");
let url = syncers::common::retrieve_url(&self.api, true, &song.id);
let access_token = token.bearer_token();
@@ -35,13 +35,10 @@ impl Download {
.await
{
Ok(rep) => match rep.status() {
reqwest::StatusCode::OK => {
let data = rep.text();
match data.await {
Ok(e) => Ok(e),
Err(er) => Err(MyError::Other(er.to_string())),
}
}
reqwest::StatusCode::OK => match rep.text().await {
Ok(e) => Ok(e),
Err(er) => Err(MyError::Other(er.to_string())),
},
reqwest::StatusCode::UNAUTHORIZED => {
Err(MyError::Other(String::from("Need to grab a new token")))
}