use crate::tls::impersonate::ImpersonateSettings;
use crate::tls::TlsResult;
use http::{
header::{
ACCEPT, ACCEPT_ENCODING, ACCEPT_LANGUAGE, DNT, UPGRADE_INSECURE_REQUESTS, USER_AGENT,
},
HeaderMap, HeaderValue,
};
pub(crate) fn get_settings() -> TlsResult<ImpersonateSettings> {
Ok(ImpersonateSettings::builder()
.tls(super::tls_template_4()?)
.http2(super::http2_template_3())
.headers(Box::new(header_initializer))
.build())
}
fn header_initializer(headers: &mut HeaderMap) {
headers.insert(
"sec-ch-ua",
HeaderValue::from_static(
r#""Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99""#,
),
);
headers.insert("sec-ch-ua-mobile", HeaderValue::from_static("?0"));
headers.insert("sec-ch-ua-platform", HeaderValue::from_static("\"macOS\""));
headers.insert(DNT, HeaderValue::from_static("1"));
headers.insert(UPGRADE_INSECURE_REQUESTS, HeaderValue::from_static("1"));
headers.insert(USER_AGENT, HeaderValue::from_static("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"));
headers.insert(ACCEPT, HeaderValue::from_static("text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"));
headers.insert("sec-fetch-site", HeaderValue::from_static("none"));
headers.insert("sec-fetch-mode", HeaderValue::from_static("navigate"));
headers.insert("sec-fetch-user", HeaderValue::from_static("?1"));
headers.insert("sec-fetch-dest", HeaderValue::from_static("document"));
headers.insert(
ACCEPT_ENCODING,
HeaderValue::from_static("gzip, deflate, br"),
);
headers.insert(ACCEPT_LANGUAGE, HeaderValue::from_static("en-US,en;q=0.9"));
}