testing this fix

This commit is contained in:
Simon
2025-08-28 17:53:02 +00:00
parent f10491dd73
commit 44b42170be
2 changed files with 13 additions and 12 deletions

View File

@@ -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 {

View File

@@ -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);
} }