heavyfetish and other changes

This commit is contained in:
Simon
2026-03-17 21:04:11 +00:00
parent 9ca9e820d9
commit a66f44c747
5 changed files with 1393 additions and 56 deletions

View File

@@ -5,8 +5,9 @@ use std::sync::Arc;
use wreq::Client;
use wreq::Proxy;
use wreq::Response;
use wreq::Uri;
use wreq::Version;
use wreq::cookie::Jar;
use wreq::cookie::{CookieStore, Cookies, Jar};
use wreq::header::{HeaderMap, HeaderValue, USER_AGENT};
use wreq::multipart::Form;
use wreq::redirect::Policy;
@@ -83,6 +84,23 @@ impl Requester {
self.proxy = proxy;
}
pub fn cookie_header_for_url(&self, url: &str) -> Option<String> {
let parsed = url.parse::<Uri>().ok()?;
match self.cookie_jar.cookies(&parsed) {
Cookies::Compressed(value) => value.to_str().ok().map(ToOwned::to_owned),
Cookies::Uncompressed(values) => {
let joined = values
.into_iter()
.filter_map(|value| value.to_str().ok().map(ToOwned::to_owned))
.collect::<Vec<_>>()
.join("; ");
(!joined.is_empty()).then_some(joined)
}
Cookies::Empty => None,
_ => None,
}
}
pub async fn get_raw(&mut self, url: &str) -> Result<Response, wreq::Error> {
let client = Self::build_client(self.cookie_jar.clone(), self.user_agent.as_deref());