heavyfetish testing
This commit is contained in:
@@ -169,11 +169,10 @@ impl HeavyfetishProvider {
|
||||
Channel {
|
||||
id: "heavyfetish".to_string(),
|
||||
name: "HeavyFetish".to_string(),
|
||||
description:
|
||||
"HeavyFetish videos, categories, tags, models, and uploader archives.".to_string(),
|
||||
premium: false,
|
||||
favicon: "https://www.google.com/s2/favicons?sz=64&domain=heavyfetish.com"
|
||||
description: "HeavyFetish videos, categories, tags, models, and uploader archives."
|
||||
.to_string(),
|
||||
premium: false,
|
||||
favicon: "https://www.google.com/s2/favicons?sz=64&domain=heavyfetish.com".to_string(),
|
||||
status: "active".to_string(),
|
||||
categories: categories.iter().map(|value| value.title.clone()).collect(),
|
||||
options: vec![
|
||||
@@ -321,11 +320,7 @@ impl HeavyfetishProvider {
|
||||
}
|
||||
|
||||
fn parse_percent(text: &str) -> Option<f32> {
|
||||
text.trim()
|
||||
.trim_end_matches('%')
|
||||
.trim()
|
||||
.parse::<f32>()
|
||||
.ok()
|
||||
text.trim().trim_end_matches('%').trim().parse::<f32>().ok()
|
||||
}
|
||||
|
||||
fn sort_param(sort: &str) -> Option<&'static str> {
|
||||
@@ -439,7 +434,11 @@ impl HeavyfetishProvider {
|
||||
let selector = Self::selector("a[href]")?;
|
||||
|
||||
for element in document.select(&selector) {
|
||||
let href = element.value().attr("href").unwrap_or_default().trim_end_matches('/');
|
||||
let href = element
|
||||
.value()
|
||||
.attr("href")
|
||||
.unwrap_or_default()
|
||||
.trim_end_matches('/');
|
||||
if !href.starts_with(&format!("{base_url}/tags/")) {
|
||||
continue;
|
||||
}
|
||||
@@ -487,7 +486,11 @@ impl HeavyfetishProvider {
|
||||
let document = Html::parse_document(&html);
|
||||
|
||||
for element in document.select(&selector) {
|
||||
let href = element.value().attr("href").unwrap_or_default().trim_end_matches('/');
|
||||
let href = element
|
||||
.value()
|
||||
.attr("href")
|
||||
.unwrap_or_default()
|
||||
.trim_end_matches('/');
|
||||
let title = element
|
||||
.value()
|
||||
.attr("title")
|
||||
@@ -530,7 +533,11 @@ impl HeavyfetishProvider {
|
||||
let document = Html::parse_document(&html);
|
||||
|
||||
for element in document.select(&selector) {
|
||||
let href = element.value().attr("href").unwrap_or_default().trim_end_matches('/');
|
||||
let href = element
|
||||
.value()
|
||||
.attr("href")
|
||||
.unwrap_or_default()
|
||||
.trim_end_matches('/');
|
||||
if !href.starts_with(&format!("{base_url}/members/")) {
|
||||
continue;
|
||||
}
|
||||
@@ -611,11 +618,17 @@ impl HeavyfetishProvider {
|
||||
}
|
||||
}
|
||||
|
||||
fn match_filter(options: &[FilterOption], query: &str, kind: TargetKind) -> Option<QueryTarget> {
|
||||
fn match_filter(
|
||||
options: &[FilterOption],
|
||||
query: &str,
|
||||
kind: TargetKind,
|
||||
) -> Option<QueryTarget> {
|
||||
let normalized_query = Self::normalize_title(query);
|
||||
options
|
||||
.iter()
|
||||
.find(|value| value.id != "all" && Self::normalize_title(&value.title) == normalized_query)
|
||||
.find(|value| {
|
||||
value.id != "all" && Self::normalize_title(&value.title) == normalized_query
|
||||
})
|
||||
.map(|value| QueryTarget {
|
||||
kind,
|
||||
value: value.id.clone(),
|
||||
@@ -854,7 +867,16 @@ impl HeavyfetishProvider {
|
||||
let order = ["2160p", "1440p", "1080p", "720p", "480p", "360p", "240p"];
|
||||
let mut formats = Vec::new();
|
||||
|
||||
|
||||
for quality in order {
|
||||
let Some(url) = seen.get(quality) else {
|
||||
continue;
|
||||
};
|
||||
let format = VideoFormat::new(page_url.to_string().clone(), quality.to_string(), "mp4".to_string())
|
||||
.format_id(quality.to_string())
|
||||
.http_header("Referer".to_string(), page_url.to_string())
|
||||
.http_header("User-Agent".to_string(), BROWSER_UA.to_string());
|
||||
formats.push(format);
|
||||
}
|
||||
|
||||
Ok(formats)
|
||||
}
|
||||
@@ -887,8 +909,7 @@ impl HeavyfetishProvider {
|
||||
let info_span_selector = Self::selector(".block-details .info .item span")?;
|
||||
let category_selector = Self::selector(".block-details .info a[href*=\"/categories/\"]")?;
|
||||
let tag_selector = Self::selector(".block-details .info a[href*=\"/tags/\"]")?;
|
||||
let model_selector =
|
||||
Self::selector(".block-details .info a[href*=\"/fetish-models/\"]")?;
|
||||
let model_selector = Self::selector(".block-details .info a[href*=\"/fetish-models/\"]")?;
|
||||
|
||||
if let Some(title) = Self::extract_js_value(&flashvars, &title_regex) {
|
||||
if !title.is_empty() {
|
||||
@@ -1066,8 +1087,11 @@ impl HeavyfetishProvider {
|
||||
}
|
||||
}
|
||||
|
||||
let mut requester =
|
||||
requester_or_default(options, "heavyfetish", "fetch_items_for_url.requester_missing");
|
||||
let mut requester = requester_or_default(
|
||||
options,
|
||||
"heavyfetish",
|
||||
"fetch_items_for_url.requester_missing",
|
||||
);
|
||||
let html = requester
|
||||
.get(&url, None)
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user