diff --git a/src/providers/porn00.rs b/src/providers/porn00.rs index dc065d8..0aeb85c 100644 --- a/src/providers/porn00.rs +++ b/src/providers/porn00.rs @@ -81,6 +81,7 @@ impl Porn00Provider { cache: VideoCache, page: u8, query: &str, + options: ServerOptions, ) -> Result> { let search_string = query.to_lowercase().trim().replace(" ", "-"); let video_url = format!("{}/search/{}/?mode=async&function=get_block&block_id=list_videos_videos_list_search_result&q=a&category_ids=&sort_by=&from_videos={}&from_albums={}&", self.url, search_string, page, page); @@ -99,55 +100,17 @@ impl Porn00Provider { } }; - let proxy = Proxy::all("http://192.168.0.103:8081").unwrap(); - let client = Client::builder().cert_verification(false).emulation(Emulation::Firefox136).build()?; + let mut requester = options.requester.clone().unwrap(); - let mut response = client.get(video_url.clone()) - // .proxy(proxy.clone()) - .send().await?; - - if response.status().is_redirection(){ - - response = client.get(response.headers()["Location"].to_str().unwrap()) - // .proxy(proxy.clone()) - .send().await?; - } - - if response.status().is_success() { - let text = response.text().await?; - let video_items: Vec = self.get_video_items_from_html(text.clone()); - if !video_items.is_empty() { - cache.remove(&video_url); - cache.insert(video_url.clone(), video_items.clone()); - } else { - return Ok(old_items); - } - Ok(video_items) + let text = requester.get(&video_url).await.unwrap(); + let video_items: Vec = self.get_video_items_from_html(text.clone()); + if !video_items.is_empty() { + cache.remove(&video_url); + cache.insert(video_url.clone(), video_items.clone()); } else { - let flare_url = env::var("FLARE_URL").expect("FLARE_URL not set"); - let flare = Flaresolverr::new(flare_url); - let result = flare - .solve(FlareSolverrRequest { - cmd: "request.get".to_string(), - url: video_url.clone(), - maxTimeout: 60000, - }) - .await; - let video_items = match result { - Ok(res) => self.get_video_items_from_html(res.solution.response), - Err(e) => { - println!("Error solving FlareSolverr: {}", e); - return Err("Failed to solve FlareSolverr".into()); - } - }; - if !video_items.is_empty() { - cache.remove(&video_url); - cache.insert(video_url.clone(), video_items.clone()); - } else { - return Ok(old_items); - } - Ok(video_items) + return Ok(old_items); } + Ok(video_items) } fn get_video_items_from_html(&self, html: String) -> Vec { @@ -226,7 +189,7 @@ impl Provider for Porn00Provider { let _ = pool; let videos: std::result::Result, Error> = match query { Some(q) => { - self.query(cache, page.parse::().unwrap_or(1), &q,) + self.query(cache, page.parse::().unwrap_or(1), &q,options) .await } None => {