hqporner fix

This commit is contained in:
Simon
2026-04-25 18:22:05 +00:00
committed by ForgeCode
parent 2bd132820b
commit cc66f045cd
2 changed files with 264 additions and 27 deletions

View File

@@ -6,7 +6,7 @@ use crate::util::cache::VideoCache;
use crate::util::discord::{format_error_chain, send_discord_error_report};
use crate::util::requester::Requester;
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};
@@ -323,12 +323,40 @@ impl HqpornerProvider {
.unwrap_or_default();
let duration = parse_time_to_seconds(&raw_duration).unwrap_or(0) as u32;
let stripped_detail_url = crate::providers::strip_url_scheme(&detail_url);
let proxied_url = crate::providers::build_proxy_url(
options,
"hqporner",
&crate::providers::strip_url_scheme(&detail_url),
&stripped_detail_url,
);
let quality_target = |quality: &str| -> String {
format!("{stripped_detail_url}/__quality__/{quality}")
};
let formats = vec![
VideoFormat::new(
crate::providers::build_proxy_url(options, "hqporner", &quality_target("1080")),
"1080p".to_string(),
"mp4".to_string(),
)
.format_id("1080p".to_string())
.format_note("1080p Full HD".to_string()),
VideoFormat::new(
crate::providers::build_proxy_url(options, "hqporner", &quality_target("720")),
"720p".to_string(),
"mp4".to_string(),
)
.format_id("720p".to_string())
.format_note("720p HD".to_string()),
VideoFormat::new(
crate::providers::build_proxy_url(options, "hqporner", &quality_target("360")),
"360p".to_string(),
"mp4".to_string(),
)
.format_id("360p".to_string())
.format_note("360p".to_string()),
];
Ok(VideoItem::new(
id,
title,
@@ -336,7 +364,8 @@ impl HqpornerProvider {
"hqporner".into(),
thumb,
duration,
))
)
.formats(formats))
}
}