add timeouts to http requests
All checks were successful
tests / fmt (push) Successful in 2m5s
tests / clippy (push) Successful in 2m29s
tests / pre-commit (push) Successful in 2m33s
tests / test (push) Successful in 2m44s
tests / build (push) Successful in 2m54s
deploy / release-image (push) Successful in 9m8s
All checks were successful
tests / fmt (push) Successful in 2m5s
tests / clippy (push) Successful in 2m29s
tests / pre-commit (push) Successful in 2m33s
tests / test (push) Successful in 2m44s
tests / build (push) Successful in 2m54s
deploy / release-image (push) Successful in 9m8s
This commit is contained in:
@@ -341,13 +341,17 @@ pub(crate) async fn play(
|
|||||||
.or(yttrack.url.clone())
|
.or(yttrack.url.clone())
|
||||||
.ok_or("Could not find url")?;
|
.ok_or("Could not find url")?;
|
||||||
|
|
||||||
let mut src = YoutubeDl::new(reqwest::Client::new(), url.clone());
|
let mut src = YoutubeDl::new(state.client.clone(), url.clone());
|
||||||
let track: Track = src.clone().into();
|
let track: Track = src.clone().into();
|
||||||
|
|
||||||
if let Ok(metadata) = src.aux_metadata().await {
|
if let Ok(metadata) = src.aux_metadata().await {
|
||||||
debug!("metadata: {:?}", metadata);
|
debug!("metadata: {:?}", metadata);
|
||||||
|
|
||||||
persistence(&interaction, yttrack, Arc::clone(&state)).await?;
|
persistence(&interaction, yttrack, Arc::clone(&state))
|
||||||
|
.await
|
||||||
|
.unwrap_or_else(|e| {
|
||||||
|
tracing::error!("could not persist track: {:?}", e);
|
||||||
|
});
|
||||||
|
|
||||||
tracks_added.push(TrackType {
|
tracks_added.push(TrackType {
|
||||||
url: url.clone(),
|
url: url.clone(),
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ use futures::StreamExt;
|
|||||||
use signal::signal_handler;
|
use signal::signal_handler;
|
||||||
use songbird::{shards::TwilightMap, Songbird};
|
use songbird::{shards::TwilightMap, Songbird};
|
||||||
use state::StateRef;
|
use state::StateRef;
|
||||||
use std::{env, error::Error, str::FromStr, sync::Arc};
|
use std::{env, error::Error, str::FromStr, sync::Arc, time::Duration};
|
||||||
use tokio::select;
|
use tokio::select;
|
||||||
use tracing::{debug, info};
|
use tracing::{debug, info};
|
||||||
use twilight_cache_inmemory::InMemoryCache;
|
use twilight_cache_inmemory::InMemoryCache;
|
||||||
@@ -82,6 +82,11 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
|
|||||||
);
|
);
|
||||||
let songbird = Songbird::twilight(Arc::new(senders), user_id);
|
let songbird = Songbird::twilight(Arc::new(senders), user_id);
|
||||||
let cache = InMemoryCache::new();
|
let cache = InMemoryCache::new();
|
||||||
|
let client = reqwest::ClientBuilder::new()
|
||||||
|
.connect_timeout(Duration::from_secs(10))
|
||||||
|
.timeout(Duration::from_secs(3600))
|
||||||
|
.build()
|
||||||
|
.expect("could not build http client");
|
||||||
|
|
||||||
(
|
(
|
||||||
shards,
|
shards,
|
||||||
@@ -92,6 +97,7 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
|
|||||||
standby: Standby::new(),
|
standby: Standby::new(),
|
||||||
guild_settings: Default::default(),
|
guild_settings: Default::default(),
|
||||||
pool,
|
pool,
|
||||||
|
client,
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -33,4 +33,5 @@ pub(crate) struct StateRef {
|
|||||||
pub(crate) standby: Standby,
|
pub(crate) standby: Standby,
|
||||||
pub(crate) guild_settings: DashMap<Id<GuildMarker>, Settings>,
|
pub(crate) guild_settings: DashMap<Id<GuildMarker>, Settings>,
|
||||||
pub(crate) pool: sqlx::SqlitePool,
|
pub(crate) pool: sqlx::SqlitePool,
|
||||||
|
pub(crate) client: reqwest::Client,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user