Merge pull request 'refactor: accept cli args only' (#9) from ErrorNoInternet/r34-scraper:cli-args-only into main

Reviewed-on: https://git.javalsai.dynv6.net/danmax/r34-scraper/pulls/9
This commit is contained in:
danmax 2024-10-20 06:25:37 +02:00
commit 5f848be434
2 changed files with 8 additions and 22 deletions

View File

@ -11,8 +11,8 @@ pub struct Args {
pub user_agent: String,
/// Tags to search for
#[arg(short, long)]
pub tags: Option<Vec<String>>,
#[arg(short, long, required = true)]
pub tags: Vec<String>,
/// Page to start scraping from
#[arg(short, long, default_value_t = 1)]

View File

@ -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::<String>();
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!(