2024-10-19 21:37:31 +02:00

30 lines
842 B
Rust

use clap::Parser;
#[derive(Debug, Parser)]
#[command(version)]
pub struct Args {
/// User Agent to use for requests
#[arg(
short,
default_value = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
)]
pub user_agent: String,
/// Tags to search for
#[arg(short, long)]
pub tags: Option<Vec<String>>,
/// Async jobs to use for fetching
#[arg(short, long, default_value = "4")]
pub jobs: usize,
/// Delay for rate-limits (ms)
#[arg(short, long, default_value = "1000", value_parser = parse_duration)]
pub delay: std::time::Duration,
}
fn parse_duration(arg: &str) -> Result<std::time::Duration, std::num::ParseIntError> {
let seconds = arg.parse()?;
Ok(std::time::Duration::from_millis(seconds))
}