testing this fix
This commit is contained in:
@@ -40,7 +40,7 @@ impl MissavProvider {
|
|||||||
// Extract needed fields from options at the start
|
// Extract needed fields from options at the start
|
||||||
let language = options.language.clone().unwrap();
|
let language = options.language.clone().unwrap();
|
||||||
let filter = options.filter.clone().unwrap();
|
let filter = options.filter.clone().unwrap();
|
||||||
let requester = options.requester.clone().unwrap();
|
let mut requester = options.requester.clone().unwrap();
|
||||||
|
|
||||||
let url_str = format!("{}/{}/{}?page={}&sort={}", self.url, language, filter, page, sort);
|
let url_str = format!("{}/{}/{}?page={}&sort={}", self.url, language, filter, page, sort);
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ impl MissavProvider {
|
|||||||
// Extract needed fields from options at the start
|
// Extract needed fields from options at the start
|
||||||
let language = options.language.clone().unwrap();
|
let language = options.language.clone().unwrap();
|
||||||
let filter = options.filter.clone().unwrap();
|
let filter = options.filter.clone().unwrap();
|
||||||
let requester = options.requester.clone().unwrap();
|
let mut requester = options.requester.clone().unwrap();
|
||||||
let search_string = query.replace(" ", "%20");
|
let search_string = query.replace(" ", "%20");
|
||||||
let url_str = format!(
|
let url_str = format!(
|
||||||
"{}/{}/search/{}?page={}&sort={}",
|
"{}/{}/search/{}?page={}&sort={}",
|
||||||
@@ -139,7 +139,7 @@ impl MissavProvider {
|
|||||||
return video_items;
|
return video_items;
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn get_video_item(&self, url_str: String, pool: DbPool, requester: Requester) -> Result<VideoItem> {
|
async fn get_video_item(&self, url_str: String, pool: DbPool, mut requester: Requester) -> Result<VideoItem> {
|
||||||
let mut conn = pool.get().expect("couldn't get db connection from pool");
|
let mut conn = pool.get().expect("couldn't get db connection from pool");
|
||||||
let db_result = db::get_video(&mut conn,url_str.clone());
|
let db_result = db::get_video(&mut conn,url_str.clone());
|
||||||
match db_result {
|
match db_result {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ pub struct Requester {
|
|||||||
|
|
||||||
impl Requester {
|
impl Requester {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
let client = Client::builder()
|
let mut client = Client::builder()
|
||||||
.cert_verification(false)
|
.cert_verification(false)
|
||||||
.emulation(Emulation::Firefox136)
|
.emulation(Emulation::Firefox136)
|
||||||
.cookie_store(true)
|
.cookie_store(true)
|
||||||
@@ -54,7 +54,7 @@ impl Requester {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn get(&self, url: &str) -> Result<String, Box<dyn std::error::Error + Send + Sync>> {
|
pub async fn get(&mut self, url: &str) -> Result<String, Box<dyn std::error::Error + Send + Sync>> {
|
||||||
let mut request = self.client.get(url).version(Version::HTTP_11);
|
let mut request = self.client.get(url).version(Version::HTTP_11);
|
||||||
let mut proxy;
|
let mut proxy;
|
||||||
if self.proxy {
|
if self.proxy {
|
||||||
@@ -83,12 +83,14 @@ impl Requester {
|
|||||||
.await;
|
.await;
|
||||||
match result {
|
match result {
|
||||||
Ok(res) => {
|
Ok(res) => {
|
||||||
self.client.update()
|
let cookie_url = url.split("/").collect::<Vec<&str>>()[..3].join("/");
|
||||||
.headers(|headers| {
|
self.client = Client::builder()
|
||||||
headers.insert("Cookie", HeaderValue::from_str("").unwrap());
|
.cert_verification(false)
|
||||||
})
|
.emulation(Emulation::Firefox136)
|
||||||
.apply()
|
.cookie_store(true)
|
||||||
.unwrap();
|
.redirect(Policy::default())
|
||||||
|
.build()
|
||||||
|
.expect("Failed to create HTTP client");
|
||||||
let useragent = res.solution.userAgent;
|
let useragent = res.solution.userAgent;
|
||||||
self.client.update()
|
self.client.update()
|
||||||
.headers(|headers| {
|
.headers(|headers| {
|
||||||
@@ -99,7 +101,6 @@ impl Requester {
|
|||||||
for cookie in res.solution.cookies {
|
for cookie in res.solution.cookies {
|
||||||
let header = HeaderValue::from_str(&format!("{}={}", cookie.name, cookie.value)).unwrap();
|
let header = HeaderValue::from_str(&format!("{}={}", cookie.name, cookie.value)).unwrap();
|
||||||
// Parse the domain string into a Url
|
// Parse the domain string into a Url
|
||||||
let cookie_url = url.split("/").collect::<Vec<&str>>()[..3].join("/");
|
|
||||||
if let Ok(url) = url::Url::parse(cookie_url.as_str()) {
|
if let Ok(url) = url::Url::parse(cookie_url.as_str()) {
|
||||||
self.client.set_cookie(&url, header);
|
self.client.set_cookie(&url, header);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user