dynamic base url

This commit is contained in:
Simon
2026-03-10 18:45:32 +00:00
parent 2ad131f38f
commit 96926563b8
10 changed files with 118 additions and 43 deletions

View File

@@ -155,7 +155,7 @@ impl JavtifulProvider {
return Ok(vec![]);
}
let video_items: Vec<VideoItem> = self
.get_video_items_from_html(text.clone(), &mut requester)
.get_video_items_from_html(text.clone(), &mut requester, &options)
.await;
if !video_items.is_empty() {
cache.remove(&video_url);
@@ -223,7 +223,7 @@ impl JavtifulProvider {
return Ok(vec![]);
}
let video_items: Vec<VideoItem> = self
.get_video_items_from_html(text.clone(), &mut requester)
.get_video_items_from_html(text.clone(), &mut requester, &options)
.await;
if !video_items.is_empty() {
cache.remove(&video_url);
@@ -238,6 +238,7 @@ impl JavtifulProvider {
&self,
html: String,
requester: &mut Requester,
options: &ServerOptions,
) -> Vec<VideoItem> {
if html.is_empty() || html.contains("404 Not Found") {
return vec![];
@@ -269,7 +270,7 @@ impl JavtifulProvider {
.split("card ")
.skip(1)
.filter(|seg| !seg.contains("SPONSOR"))
.map(|el| self.get_video_item(el.to_string(), requester.clone()));
.map(|el| self.get_video_item(el.to_string(), requester.clone(), options));
join_all(futures)
.await
@@ -300,7 +301,12 @@ impl JavtifulProvider {
.collect()
}
async fn get_video_item(&self, seg: String, mut requester: Requester) -> Result<VideoItem> {
async fn get_video_item(
&self,
seg: String,
mut requester: Requester,
options: &ServerOptions,
) -> Result<VideoItem> {
let video_url = seg
.split(" href=\"")
.nth(1)
@@ -350,7 +356,7 @@ impl JavtifulProvider {
.unwrap_or("")
.to_string();
let duration = parse_time_to_seconds(&raw_duration).unwrap_or(0) as u32;
let (tags, formats, views) = self.extract_media(&video_url, &mut requester).await?;
let (tags, formats, views) = self.extract_media(&video_url, &mut requester, options).await?;
if preview.len() == 0 {
preview = format!("https://trailers.jav.si/preview/{id}.mp4");
@@ -367,6 +373,7 @@ impl JavtifulProvider {
&self,
url: &str,
requester: &mut Requester,
options: &ServerOptions,
) -> Result<(Vec<String>, Vec<VideoFormat>, u32)> {
let text = requester
.get(url, Some(Version::HTTP_2))
@@ -413,7 +420,11 @@ impl JavtifulProvider {
.unwrap_or(0);
let quality = "1080p".to_string();
let video_url = url.replace("javtiful.com", "hottub.spacemoehre.de/proxy/javtiful");
let video_url = crate::providers::build_proxy_url(
options,
"javtiful",
&crate::providers::strip_url_scheme(url),
);
Ok((
tags,
vec![VideoFormat::new(video_url, quality, "video/mp4".into())],