use crate::structs; use std::env; use std::process::exit; extern crate serde_json; pub fn get_client() -> reqwest::Client { let mut builder = reqwest::Client::builder(); match env::var("NHENTAIRS_INSECURE") { Ok(val) => { if val == "true" || val == "yes" || val == "1" { builder = builder.danger_accept_invalid_certs(true); } } Err(env::VarError::NotPresent) => {} Err(err) => eprintln!("failed to parse NHENTAIRS_INSECURE: {err}"), }; match builder.build() { Ok(client) => client, Err(err) => { eprintln!("Failed to create reqwest client: {err}"); exit(1); } } } pub async fn get_sauce_info( client: reqwest::Client, sauce: i32, ) -> Result { let mut uri = String::from("https://nhentai.net/api/gallery/"); uri.push_str(&sauce.to_string()); let resp = client.get(&uri).send().await?; Ok(serde_json::from_str(&resp.text().await?).unwrap()) } pub async fn get_search_info( client: reqwest::Client, search_query: &str, ) -> Result { let uri = "https://nhentai.net/api/galleries/search"; let resp = client .get(uri) .query(&[("query", search_query)]) .send() .await?; Ok(serde_json::from_str(&resp.text().await?).unwrap()) }