testing and fixing

This commit is contained in:
Simon
2025-08-09 12:21:43 +00:00
parent 6b4b0be522
commit 3feeb02251
12 changed files with 204 additions and 96 deletions

View File

@@ -1,9 +1,10 @@
use crate::{
providers::{
hanime::HanimeProvider, perverzija::PerverzijaProvider, pmvhaven::PmvhavenProvider, pornhub::PornhubProvider, rule34video::Rule34videoProvider, spankbang::SpankbangProvider, redtube::RedtubeProvider,
}, util::cache::VideoCache, videos::VideoItem, DbPool
all::AllProvider, hanime::HanimeProvider, perverzija::PerverzijaProvider, pmvhaven::PmvhavenProvider, pornhub::PornhubProvider, redtube::RedtubeProvider, rule34video::Rule34videoProvider, spankbang::SpankbangProvider
}, util::cache::VideoCache, videos::{ServerOptions, VideoItem}, DbPool
};
pub mod all;
pub mod hanime;
pub mod perverzija;
pub mod pmvhaven;
@@ -22,13 +23,13 @@ pub trait Provider {
query: Option<String>,
page: String,
per_page: String,
featured: String,
category: String,
options: ServerOptions,
) -> Vec<VideoItem>;
}
#[derive(Debug, Clone)]
pub enum AnyProvider {
All(AllProvider),
Perverzija(PerverzijaProvider),
Hanime(HanimeProvider),
Spankbang(SpankbangProvider),
@@ -37,6 +38,7 @@ pub enum AnyProvider {
Rule34video(Rule34videoProvider),
Redtube(RedtubeProvider), // Assuming Redtube is similar to Rule34video
}
impl Provider for AnyProvider {
async fn get_videos(
&self,
@@ -47,12 +49,11 @@ impl Provider for AnyProvider {
query: Option<String>,
page: String,
per_page: String,
featured: String,
category: String,
options: ServerOptions
) -> Vec<VideoItem> {
println!(
"/api/videos: channel={:?}, sort={:?}, query={:?}, page={:?}, per_page={:?}, featured={:?}",
channel, sort, query, page, per_page, featured
"/api/videos: channel={:?}, sort={:?}, query={:?}, page={:?}",
channel, sort, query, page
);
match self {
AnyProvider::Perverzija(p) => {
@@ -64,39 +65,36 @@ impl Provider for AnyProvider {
query.clone(),
page.clone(),
per_page.clone(),
featured.clone(),
category.clone(),
options,
)
.await
}
AnyProvider::Hanime(p) => {
p.get_videos(cache, pool, channel, sort, query, page, per_page, featured,
category.clone(),)
p.get_videos(cache, pool, channel, sort, query, page, per_page, options,)
.await
}
AnyProvider::Spankbang(p) => {
p.get_videos(cache, pool, channel, sort, query, page, per_page, featured,
category.clone(),)
p.get_videos(cache, pool, channel, sort, query, page, per_page, options,)
.await
}
AnyProvider::Pornhub(p) => {
p.get_videos(cache, pool, channel, sort, query, page, per_page, featured,
category.clone(),)
p.get_videos(cache, pool, channel, sort, query, page, per_page, options,)
.await
}
AnyProvider::Pmvhaven(p) => {
p.get_videos(cache, pool, channel, sort, query, page, per_page, featured,
category.clone(),)
p.get_videos(cache, pool, channel, sort, query, page, per_page, options,)
.await
}
AnyProvider::Rule34video(p) => {
p.get_videos(cache, pool, channel, sort, query, page, per_page, featured,
category.clone(),)
p.get_videos(cache, pool, channel, sort, query, page, per_page, options,)
.await
}
AnyProvider::Redtube(p) => {
p.get_videos(cache, pool, channel, sort, query, page, per_page, featured,
category.clone(),)
p.get_videos(cache, pool, channel, sort, query, page, per_page, options,)
.await
}
AnyProvider::All(p) => {
p.get_videos(cache, pool, channel, sort, query, page, per_page, options,)
.await
}
}