switched request module, so no need for burpsuite anymore
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
use std::vec;
|
||||
use std::env;
|
||||
use error_chain::error_chain;
|
||||
use reqwest::{Proxy};
|
||||
use futures::future::join_all;
|
||||
|
||||
use wreq::Client;
|
||||
use wreq_util::Emulation;
|
||||
use crate::db;
|
||||
use crate::providers::Provider;
|
||||
use crate::util::cache::VideoCache;
|
||||
@@ -14,7 +14,7 @@ use crate::USER_AGENT; // Make sure Provider trait is imported
|
||||
error_chain! {
|
||||
foreign_links {
|
||||
Io(std::io::Error);
|
||||
HttpRequest(reqwest::Error);
|
||||
HttpRequest(wreq::Error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,18 +152,9 @@ impl HanimeProvider {
|
||||
}
|
||||
}
|
||||
|
||||
let client = match env::var("BURP_URL").as_deref() {
|
||||
Ok(burp_url) =>
|
||||
reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.proxy(Proxy::https(burp_url).unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
Err(_) => reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
};
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
let url = format!("https://h.freeanimehentai.net/api/v8/video?id={}&", hit.slug);
|
||||
let response = client.get(url).send().await?;
|
||||
|
||||
@@ -228,18 +219,9 @@ impl HanimeProvider {
|
||||
.search_text(query.clone())
|
||||
.order_by(order_by)
|
||||
.ordering(ordering);
|
||||
let client = match env::var("BURP_URL").as_deref() {
|
||||
Ok(burp_url) =>
|
||||
reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.proxy(Proxy::https(burp_url).unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
Err(_) => reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
};
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
let response = client.post("https://search.htv-services.com/search")
|
||||
.json(&search)
|
||||
.send().await?;
|
||||
@@ -288,7 +270,6 @@ impl Provider for HanimeProvider {
|
||||
let _ = featured;
|
||||
let _ = per_page;
|
||||
let _ = sort;
|
||||
println!("Sort: {:?}", sort);
|
||||
let videos: std::result::Result<Vec<VideoItem>, Error> = match query {
|
||||
Some(q) => self.get(cache, pool, page.parse::<u8>().unwrap_or(1), q, sort).await,
|
||||
None => self.get(cache, pool, page.parse::<u8>().unwrap_or(1), "".to_string(), sort).await,
|
||||
|
||||
@@ -2,9 +2,9 @@ use std::vec;
|
||||
use std::env;
|
||||
use error_chain::error_chain;
|
||||
use htmlentity::entity::{decode, ICodedDataTrait};
|
||||
use reqwest::{Proxy};
|
||||
use futures::future::join_all;
|
||||
|
||||
use wreq::Client;
|
||||
use wreq_util::Emulation;
|
||||
use crate::db;
|
||||
use crate::providers::Provider;
|
||||
use crate::util::cache::VideoCache;
|
||||
@@ -17,7 +17,7 @@ use crate::USER_AGENT; // Make sure Provider trait is imported
|
||||
error_chain! {
|
||||
foreign_links {
|
||||
Io(std::io::Error);
|
||||
HttpRequest(reqwest::Error);
|
||||
HttpRequest(wreq::Error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,18 +59,9 @@ impl PerverzijaProvider {
|
||||
};
|
||||
|
||||
|
||||
let client = match env::var("BURP_URL").as_deref() {
|
||||
Ok(burp_url) =>
|
||||
reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.proxy(Proxy::https(burp_url).unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
Err(_) => reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
};
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
|
||||
let response = client.get(url.clone()).send().await?;
|
||||
// print!("Response: {:?}\n", response);
|
||||
@@ -141,18 +132,9 @@ impl PerverzijaProvider {
|
||||
vec![]
|
||||
}
|
||||
};
|
||||
let client = match env::var("BURP_URL").as_deref() {
|
||||
Ok(burp_url) =>
|
||||
reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.proxy(Proxy::https(burp_url).unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
Err(_) => reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
};
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
|
||||
let response = client.get(url.clone()).send().await?;
|
||||
if response.status().is_success() {
|
||||
@@ -384,18 +366,9 @@ impl PerverzijaProvider {
|
||||
drop(conn);
|
||||
|
||||
|
||||
let client = match env::var("BURP_URL").as_deref() {
|
||||
Ok(burp_url) =>
|
||||
reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.proxy(Proxy::https(burp_url).unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
Err(_) => reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
};
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
|
||||
let response = client.get(lookup_url.clone()).send().await?;
|
||||
let text = match response.status().is_success(){
|
||||
|
||||
@@ -3,28 +3,24 @@ use std::env;
|
||||
use error_chain::error_chain;
|
||||
use futures::future::join_all;
|
||||
use htmlentity::entity::{decode, ICodedDataTrait};
|
||||
use ntex::channel::pool;
|
||||
use reqwest::Client;
|
||||
use reqwest::{Proxy};
|
||||
use crate::db;
|
||||
use crate::providers::Provider;
|
||||
use crate::util::cache::VideoCache;
|
||||
use crate::util::flaresolverr::{FlareSolverrRequest, Flaresolverr};
|
||||
use crate::videos::{self, VideoItem};
|
||||
use crate::videos::{VideoItem};
|
||||
use crate::DbPool;
|
||||
use crate::USER_AGENT; // Make sure Provider trait is imported
|
||||
use std::collections::HashMap;
|
||||
use std::time::Duration;
|
||||
use tokio::time::sleep;
|
||||
use wreq::Client;
|
||||
use wreq_util::Emulation;
|
||||
|
||||
error_chain! {
|
||||
foreign_links {
|
||||
Io(std::io::Error);
|
||||
HttpRequest(reqwest::Error);
|
||||
HttpRequest(wreq::Error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct SpankbangProvider {
|
||||
url: String,
|
||||
@@ -55,18 +51,9 @@ impl SpankbangProvider {
|
||||
};
|
||||
|
||||
|
||||
let client = match env::var("BURP_URL").as_deref() {
|
||||
Ok(burp_url) =>
|
||||
reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.proxy(Proxy::https(burp_url).unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
Err(_) => reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
};
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
|
||||
let response = client.get(url.clone()).send().await?;
|
||||
let mut cookies_string = String::new();
|
||||
@@ -151,18 +138,9 @@ impl SpankbangProvider {
|
||||
};
|
||||
|
||||
|
||||
let client = match env::var("BURP_URL").as_deref() {
|
||||
Ok(burp_url) =>
|
||||
reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.proxy(Proxy::https(burp_url).unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
Err(_) => reqwest::Client::builder()
|
||||
.user_agent(USER_AGENT)
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?,
|
||||
};
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
|
||||
let response = client.get(url.clone()).send().await?;
|
||||
let mut cookies_string = String::new();
|
||||
@@ -277,7 +255,6 @@ impl SpankbangProvider {
|
||||
|
||||
let vid = html.split("\n").collect::<Vec<&str>>();
|
||||
if vid.len() > 200 {
|
||||
println!("Video item has too many lines: {}", vid.len());
|
||||
return Err("Video item has too many lines".into());
|
||||
}
|
||||
// for (index ,line) in vid.iter().enumerate() {
|
||||
@@ -303,13 +280,13 @@ impl SpankbangProvider {
|
||||
// else{
|
||||
// preview = preview_line.split("data-src=\"").collect::<Vec<&str>>()[1].split("\"").collect::<Vec<&str>>()[0].to_string();
|
||||
// }
|
||||
let duration_str = vid.iter().find(|s| s.contains("<span class=\"video-badge l\">")).unwrap().split("<span class=\"video-badge l\">").collect::<Vec<&str>>()[1].split("m<").collect::<Vec<&str>>()[0];
|
||||
let duration_str = vid[64].split("m").collect::<Vec<&str>>()[0];
|
||||
let duration: u32 = duration_str.parse::<u32>().unwrap_or(0) * 60;
|
||||
let view_and_rating_str: Vec<&str> = vid.iter().copied().filter(|s| s.contains("<span class=\"md:text-body-md\">")).collect();
|
||||
let views_str = view_and_rating_str[0].split(">").collect::<Vec<&str>>()[1].split("K<").collect::<Vec<&str>>()[0];
|
||||
let views = (views_str.parse::<f32>().unwrap_or(0.0) * 1000.0) as u32;
|
||||
let rate_str = view_and_rating_str[1].split(">").collect::<Vec<&str>>()[1].split("%<").collect::<Vec<&str>>()[0];
|
||||
let rating = rate_str.parse::<f32>().unwrap_or(0.0);
|
||||
// let view_and_rating_str: Vec<&str> = vid.iter().copied().filter(|s| s.contains("<span class=\"md:text-body-md\">")).collect();
|
||||
// let views_str = view_and_rating_str[0].split(">").collect::<Vec<&str>>()[1].split("K<").collect::<Vec<&str>>()[0];
|
||||
// let views = (views_str.parse::<f32>().unwrap_or(0.0) * 1000.0) as u32;
|
||||
// let rate_str = view_and_rating_str[1].split(">").collect::<Vec<&str>>()[1].split("%<").collect::<Vec<&str>>()[0];
|
||||
// let rating = rate_str.parse::<f32>().unwrap_or(0.0);
|
||||
let url_part = vid.iter().find(|s| s.contains("<a href=\"/")).unwrap().split("<a href=\"/").collect::<Vec<&str>>()[1].split("\"").collect::<Vec<&str>>()[0];
|
||||
let url = match self.get_video_url(self.url.clone() + url_part, client, cookies, pool).await {
|
||||
Ok(video_url) => video_url,
|
||||
@@ -332,8 +309,8 @@ impl SpankbangProvider {
|
||||
};
|
||||
|
||||
let video_item = VideoItem::new(id, title, url.clone().to_string(), "spankbang".to_string(), thumb, duration)
|
||||
.views(views)
|
||||
.rating(rating)
|
||||
// .views(views)
|
||||
// .rating(rating)
|
||||
// .formats(vec![format])
|
||||
// .preview(preview)
|
||||
;
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
use reqwest::{Client, Proxy};
|
||||
use serde_json::json;
|
||||
use wreq::Client;
|
||||
use wreq_util::Emulation;
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||
pub struct FlareSolverrRequest {
|
||||
@@ -77,11 +78,9 @@ impl Flaresolverr {
|
||||
&self,
|
||||
request: FlareSolverrRequest,
|
||||
) -> Result<FlareSolverrResponse, Box<dyn std::error::Error>> {
|
||||
let client = Client::builder()
|
||||
.proxy(Proxy::https("http://192.168.0.101:8080").unwrap())
|
||||
.proxy(Proxy::http("http://192.168.0.101:8080").unwrap())
|
||||
.danger_accept_invalid_certs(true)
|
||||
.build()?;
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox136)
|
||||
.build()?;
|
||||
|
||||
let response = client
|
||||
.post(&self.url)
|
||||
|
||||
Reference in New Issue
Block a user