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