Skip to content

Commit

Permalink
prevent crash if video cannot be downloaded
Browse files Browse the repository at this point in the history
  • Loading branch information
Timtam committed Mar 7, 2024
1 parent f7960ff commit 4d9d0e0
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 62 deletions.
56 changes: 29 additions & 27 deletions server/src/hits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,35 +77,37 @@ impl Fairing for HitsterDownloader {
id
);

video
if let Ok(_) = video
.download(format!("{}/{}.opus", download_dir.as_str(), id))
.await
.unwrap();

println!("Post-processing opus to mp3...");

let in_file = format!("{}/{}.opus", download_dir.as_str(), id);
let out_file = format!("{}/{}.mp3", download_dir.as_str(), id);
let offset = format!("{}", hit.playback_offset);

let builder = FfmpegBuilder::new()
.stderr(Stdio::piped())
.option(Parameter::Single("nostdin"))
.option(Parameter::Single("y"))
.input(File::new(in_file.as_str()))
.output(
File::new(out_file.as_str())
.option(Parameter::KeyValue("ss", offset.as_str()))
.option(Parameter::Single("vn"))
.option(Parameter::Single("sn"))
.option(Parameter::Single("dn")),
);

let ffmpeg = builder.run().await.unwrap();

ffmpeg.process.wait_with_output().unwrap();

remove_file(in_file.as_str()).unwrap();
{
println!("Post-processing opus to mp3...");

let in_file = format!("{}/{}.opus", download_dir.as_str(), id);
let out_file = format!("{}/{}.mp3", download_dir.as_str(), id);
let offset = format!("{}", hit.playback_offset);

let builder = FfmpegBuilder::new()
.stderr(Stdio::piped())
.option(Parameter::Single("nostdin"))
.option(Parameter::Single("y"))
.input(File::new(in_file.as_str()))
.output(
File::new(out_file.as_str())
.option(Parameter::KeyValue("ss", offset.as_str()))
.option(Parameter::Single("vn"))
.option(Parameter::Single("sn"))
.option(Parameter::Single("dn")),
);

let ffmpeg = builder.run().await.unwrap();

ffmpeg.process.wait_with_output().unwrap();

remove_file(in_file.as_str()).unwrap();
} else {
println!("Unable to download video.");
}
}
}
}
Expand Down
4 changes: 1 addition & 3 deletions server/src/routes/games.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,7 @@ pub async fn start_game(
#[cfg(test)]
mod tests {
use crate::{
responses::GameResponse,
routes::users::tests::create_test_users,
test::mocked_client,
responses::GameResponse, routes::users::tests::create_test_users, test::mocked_client,
};
use rocket::http::Status;

Expand Down
65 changes: 33 additions & 32 deletions server/src/routes/users.rs
Original file line number Diff line number Diff line change
Expand Up @@ -215,37 +215,37 @@ pub mod tests {
use sqlx::sqlite::{SqliteConnectOptions, SqlitePoolOptions};

pub async fn create_test_users<'a, 'b>(client: &'a Client, amount: u8) -> Vec<Cookie<'b>> {
join_all((1..=amount)
.into_iter()
.map(|i| async move {
client
.post(uri!(super::signup))
.header(ContentType::JSON)
.body(
serde_json::to_string(&UserLoginPayload {
username: format!("testuser{}", i),
password: "abc1234".into(), // don't do this in practice!
})
.unwrap(),
)
.dispatch()
.await;

client
.post(uri!(super::login))
.header(ContentType::JSON)
.body(
serde_json::to_string(&UserLoginPayload {
username: format!("testuser{}", i),
password: "abc1234".into(), // don't do this in practice!
})
.unwrap(),
)
.dispatch()
.await
.cookies()
.get_private("login").unwrap()
})).await
join_all((1..=amount).into_iter().map(|i| async move {
client
.post(uri!(super::signup))
.header(ContentType::JSON)
.body(
serde_json::to_string(&UserLoginPayload {
username: format!("testuser{}", i),
password: "abc1234".into(), // don't do this in practice!
})
.unwrap(),
)
.dispatch()
.await;

client
.post(uri!(super::login))
.header(ContentType::JSON)
.body(
serde_json::to_string(&UserLoginPayload {
username: format!("testuser{}", i),
password: "abc1234".into(), // don't do this in practice!
})
.unwrap(),
)
.dispatch()
.await
.cookies()
.get_private("login")
.unwrap()
}))
.await
}

#[sqlx::test]
Expand Down Expand Up @@ -535,7 +535,8 @@ pub mod tests {
.games
.get(0)
.unwrap()
.creator.id,
.creator
.id,
2
);
}
Expand Down

0 comments on commit 4d9d0e0

Please sign in to comment.