This commit is contained in:
Simon
2026-03-30 17:06:28 +00:00
parent 4df2a672b7
commit 429fb16fbd
6 changed files with 514 additions and 57 deletions

View File

@@ -5,7 +5,7 @@ use crate::status::*;
use crate::util::cache::VideoCache;
use crate::util::parse_abbreviated_number;
use crate::util::time::parse_time_to_seconds;
use crate::videos::{ServerOptions, VideoItem};
use crate::videos::{ServerOptions, VideoFormat, VideoItem};
use async_trait::async_trait;
use error_chain::error_chain;
use htmlentity::entity::{ICodedDataTrait, decode};
@@ -384,6 +384,9 @@ impl ViralxxxpornProvider {
}
let thumb = self.extract_thumb_url(segment);
let preview = Self::first_non_empty_attr(segment, &["data-preview=\""])
.map(|value| self.normalize_url(&value))
.unwrap_or_default();
let text_segment = Self::normalize_ws(&Self::decode_html(&Self::strip_tags(segment)));
let duration = Self::extract_duration_seconds(segment)
@@ -398,6 +401,15 @@ impl ViralxxxpornProvider {
if views > 0 {
item = item.views(views);
}
if !preview.is_empty() {
let mut format = VideoFormat::new(
preview.clone(),
"preview".to_string(),
"video/mp4".to_string(),
);
format.add_http_header("Referer".to_string(), item.url.clone());
item = item.preview(preview).formats(vec![format]);
}
items.push(item);
}
@@ -460,6 +472,9 @@ impl ViralxxxpornProvider {
}
let thumb = self.extract_thumb_url(segment);
let preview = Self::first_non_empty_attr(segment, &["data-preview=\""])
.map(|value| self.normalize_url(&value))
.unwrap_or_default();
let raw_duration = Self::extract_between(segment, "<div class=\"duration\">", "<")
.or_else(|| Self::extract_between(segment, "<div class=\"time\">", "<"))
@@ -490,6 +505,15 @@ impl ViralxxxpornProvider {
if views > 0 {
item = item.views(views);
}
if !preview.is_empty() {
let mut format = VideoFormat::new(
preview.clone(),
"preview".to_string(),
"video/mp4".to_string(),
);
format.add_http_header("Referer".to_string(), item.url.clone());
item = item.preview(preview).formats(vec![format]);
}
items.push(item);
}