|
|
|
@ -35,6 +35,10 @@ struct Args { |
|
|
|
timeout: Option<u64>,
|
|
|
|
#[arg(short = 'B', default_value_t = false, help = "use body timeout")]
|
|
|
|
use_body_timeout: bool,
|
|
|
|
#[arg( short
|
|
|
|
, default_value_t = 301
|
|
|
|
, help = "wait for temporary failure like 503" )]
|
|
|
|
wait: u64,
|
|
|
|
#[arg(short, long)]
|
|
|
|
origin: Option<String>,
|
|
|
|
#[arg(short, long)]
|
|
|
|
@ -74,6 +78,7 @@ async fn main() -> anyhow::Result<()> { |
|
|
|
let concurrency_limit = args.concurrency.unwrap_or(20);
|
|
|
|
let timeout = args.timeout.unwrap_or(15);
|
|
|
|
let timeout = Duration::from_secs(timeout);
|
|
|
|
let wait_time = Duration::from_secs(args.wait);
|
|
|
|
let body_timeout = if args.use_body_timeout {
|
|
|
|
Some(timeout)
|
|
|
|
} else {
|
|
|
|
@ -104,7 +109,7 @@ async fn main() -> anyhow::Result<()> { |
|
|
|
|
|
|
|
let m3u8_data = actor.body_bytes(&m3u8_uri).await
|
|
|
|
. ok_or(anyhow!("Unable to get body for: {}", m3u8_uri))?;
|
|
|
|
let mut download = M3u8Download::new(m3u8_data, m3u8_uri).await?;
|
|
|
|
let mut download = M3u8Download::new(m3u8_data, m3u8_uri, wait_time).await?;
|
|
|
|
|
|
|
|
info!("Sending concurrent requests...");
|
|
|
|
|
|
|
|
|