Compare commits

...

2 Commits

Author SHA1 Message Date
Simon
b8c326306d vjav 2026-04-03 19:24:46 +00:00
Simon
041460d9b9 status update 2026-04-03 19:24:42 +00:00
5 changed files with 1751 additions and 99 deletions

View File

@@ -209,6 +209,11 @@ const PROVIDERS: &[ProviderDef] = &[
module: "supjav",
ty: "SupjavProvider",
},
ProviderDef {
id: "vjav",
module: "vjav",
ty: "VjavProvider",
},
ProviderDef {
id: "hypnotube",
module: "hypnotube",

View File

@@ -220,59 +220,6 @@ impl SextbProvider {
],
multiSelect: false,
},
ChannelOption {
id: "filter".to_string(),
title: "Section".to_string(),
description: "Browse one of the main site sections.".to_string(),
systemImage: "square.grid.2x2".to_string(),
colorName: "green".to_string(),
options: vec![
FilterOption {
id: "censored".to_string(),
title: "Censored".to_string(),
},
FilterOption {
id: "uncensored".to_string(),
title: "Uncensored".to_string(),
},
FilterOption {
id: "subtitle".to_string(),
title: "Subtitle".to_string(),
},
FilterOption {
id: "amateur".to_string(),
title: "Amateur".to_string(),
},
],
multiSelect: false,
},
ChannelOption {
id: "categories".to_string(),
title: "Genres".to_string(),
description: "Browse direct genre archive pages.".to_string(),
systemImage: "tag.fill".to_string(),
colorName: "orange".to_string(),
options: genres,
multiSelect: false,
},
ChannelOption {
id: "sites".to_string(),
title: "Studios".to_string(),
description: "Browse direct studio archive pages.".to_string(),
systemImage: "building.2.fill".to_string(),
colorName: "purple".to_string(),
options: studios,
multiSelect: false,
},
ChannelOption {
id: "stars".to_string(),
title: "Actresses".to_string(),
description: "Browse direct actress archive pages.".to_string(),
systemImage: "person.crop.square".to_string(),
colorName: "pink".to_string(),
options: actresses,
multiSelect: false,
},
],
nsfw: true,
cacheDuration: Some(1800),

View File

@@ -181,14 +181,6 @@ impl SupjavProvider {
}
fn build_channel(&self, _clientversion: ClientVersion) -> Channel {
let tags = self.tags.read().map(|value| value.clone()).unwrap_or_default();
let uploaders = self
.uploaders
.read()
.map(|value| value.clone())
.unwrap_or_default();
let stars = self.stars.read().map(|value| value.clone()).unwrap_or_default();
Channel {
id: CHANNEL_ID.to_string(),
name: "SupJav".to_string(),
@@ -231,43 +223,6 @@ impl SupjavProvider {
],
multiSelect: false,
},
ChannelOption {
id: "filter".to_string(),
title: "Category".to_string(),
description: "Browse a SupJav category archive directly.".to_string(),
systemImage: "line.horizontal.3.decrease.circle".to_string(),
colorName: "green".to_string(),
options: self.categories.clone(),
multiSelect: false,
},
ChannelOption {
id: "sites".to_string(),
title: "Makers".to_string(),
description: "Browse maker archives and reuse them as uploader targets."
.to_string(),
systemImage: "building.2".to_string(),
colorName: "purple".to_string(),
options: uploaders,
multiSelect: false,
},
ChannelOption {
id: "stars".to_string(),
title: "Cast".to_string(),
description: "Browse cast archives directly.".to_string(),
systemImage: "person.2".to_string(),
colorName: "pink".to_string(),
options: stars,
multiSelect: false,
},
ChannelOption {
id: "categories".to_string(),
title: "Genres".to_string(),
description: "Browse a genre/tag archive directly.".to_string(),
systemImage: "tag.fill".to_string(),
colorName: "orange".to_string(),
options: tags,
multiSelect: false,
},
],
nsfw: true,
cacheDuration: Some(1800),

1740
src/providers/vjav.rs Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -172,7 +172,11 @@ impl Requester {
Ok(response.text().await?)
}
#[cfg(any(not(hottub_single_provider), hottub_provider = "hypnotube"))]
#[cfg(any(
not(hottub_single_provider),
hottub_provider = "hypnotube",
hottub_provider = "vjav",
))]
fn debug_cookie_preview_from_borrowed_headers(
&self,
url: &str,
@@ -379,6 +383,7 @@ impl Requester {
not(hottub_single_provider),
hottub_provider = "hypnotube",
hottub_provider = "freeuseporn",
hottub_provider = "vjav",
))]
pub async fn post(
&mut self,