diff --git a/src/args/mod.rs b/src/args/mod.rs index 1056a42..dbf78ca 100644 --- a/src/args/mod.rs +++ b/src/args/mod.rs @@ -11,8 +11,8 @@ pub struct Args { pub user_agent: String, /// Tags to search for - #[arg(short, long)] - pub tags: Option>, + #[arg(short, long, required = true)] + pub tags: Vec, /// Async jobs to use for fetching #[arg(short, long, default_value = "4")] diff --git a/src/main.rs b/src/main.rs index c00734c..4e01f6d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -#![feature(async_closure, iter_intersperse)] +#![feature(async_closure)] pub mod args; use clap::Parser; @@ -17,22 +17,8 @@ const BAR_LENGTH: u64 = 8; async fn main() -> ExitCode { let args = args::Args::parse(); - let tags = args.tags.unwrap_or_else(|| { - println!("which tags do you want to scrape? ex: 1girls 1boys yomama"); - let tags_binding = std::io::stdin().lines().next().unwrap().unwrap(); - tags_binding - .split(' ') - .filter(|item| !item.is_empty()) - .map(std::borrow::ToOwned::to_owned) - .collect() - }); - let tags_folder = &tags.join("+"); - let uri_tags = tags - .into_iter() - .intersperse(String::from("+")) - .collect::(); - - let _ = std::fs::create_dir(tags_folder); + let uri_tags = &args.tags.join("+"); + let _ = std::fs::create_dir(uri_tags); let client = Client::builder() .user_agent(&args.user_agent) @@ -103,7 +89,7 @@ async fn main() -> ExitCode { "\x1b[37m[{i: >4}/{urls_amount}] \x1b[1;31mimage url not found\x1b[0m" )); } else { - download_file(&img_url, this_bar, i, urls_amount, tags_folder).await; + download_file(&img_url, this_bar, i, urls_amount, uri_tags).await; } break; } @@ -151,7 +137,7 @@ async fn download_file( this_bar: ProgressBar, i: usize, urls_amount: usize, - tags_folder: &str, + uri_tags: &str, ) { let args = args::Args::parse(); @@ -161,7 +147,7 @@ async fn download_file( .map(|m| m.as_str()) .unwrap(); - let file_path = tags_folder.to_owned() + "/" + file_name; + let file_path = uri_tags.to_owned() + "/" + file_name; let mut file = if std::fs::File::open(&file_path).is_ok() { this_bar.finish_with_message(format!(