overhault to fix warnings etc
This commit is contained in:
@@ -1,7 +1,15 @@
|
||||
use async_trait::async_trait;
|
||||
use once_cell::sync::Lazy;
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use std::sync::Arc;
|
||||
|
||||
use crate::{
|
||||
providers::{
|
||||
all::AllProvider, hanime::HanimeProvider, okporn::OkpornProvider, perverzija::PerverzijaProvider, pmvhaven::PmvhavenProvider, pornhub::PornhubProvider, redtube::RedtubeProvider, rule34video::Rule34videoProvider
|
||||
}, util::cache::VideoCache, videos::{ServerOptions, VideoItem}, DbPool
|
||||
DbPool,
|
||||
api::ClientVersion,
|
||||
providers::omgxxx::OmgxxxProvider,
|
||||
status::Channel,
|
||||
util::cache::VideoCache,
|
||||
videos::{ServerOptions, VideoItem},
|
||||
};
|
||||
|
||||
pub mod all;
|
||||
@@ -10,27 +18,37 @@ pub mod perverzija;
|
||||
pub mod pmvhaven;
|
||||
pub mod pornhub;
|
||||
// pub mod spankbang;
|
||||
pub mod rule34video;
|
||||
pub mod redtube;
|
||||
pub mod okporn;
|
||||
pub mod pornhat;
|
||||
pub mod perfectgirls;
|
||||
pub mod okxxx;
|
||||
pub mod homoxxx;
|
||||
pub mod okporn;
|
||||
pub mod okxxx;
|
||||
pub mod perfectgirls;
|
||||
pub mod pornhat;
|
||||
pub mod redtube;
|
||||
pub mod rule34video;
|
||||
// pub mod hentaimoon;
|
||||
pub mod missav;
|
||||
pub mod xxthots;
|
||||
pub mod sxyprn;
|
||||
pub mod porn00;
|
||||
pub mod sxyprn;
|
||||
pub mod xxthots;
|
||||
// pub mod noodlemagazine;
|
||||
pub mod freshporno;
|
||||
pub mod youjizz;
|
||||
pub mod omgxxx;
|
||||
pub mod paradisehill;
|
||||
pub mod pornzog;
|
||||
pub mod omgxxx;
|
||||
pub mod youjizz;
|
||||
|
||||
// convenient alias
|
||||
pub type DynProvider = Arc<dyn Provider>;
|
||||
|
||||
pub trait Provider {
|
||||
pub static ALL_PROVIDERS: Lazy<HashMap<&'static str, DynProvider>> = Lazy::new(|| {
|
||||
let mut m = HashMap::default();
|
||||
m.insert("omgxxx", Arc::new(OmgxxxProvider::new()) as DynProvider);
|
||||
// add more here as you migrate them
|
||||
m
|
||||
});
|
||||
|
||||
#[async_trait]
|
||||
pub trait Provider: Send + Sync {
|
||||
async fn get_videos(
|
||||
&self,
|
||||
cache: VideoCache,
|
||||
@@ -41,156 +59,24 @@ pub trait Provider {
|
||||
per_page: String,
|
||||
options: ServerOptions,
|
||||
) -> Vec<VideoItem>;
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum AnyProvider {
|
||||
All(AllProvider),
|
||||
Perverzija(PerverzijaProvider),
|
||||
Hanime(HanimeProvider),
|
||||
// Spankbang(SpankbangProvider),
|
||||
Pornhub(PornhubProvider),
|
||||
Pmvhaven(PmvhavenProvider),
|
||||
Rule34video(Rule34videoProvider),
|
||||
Redtube(RedtubeProvider),
|
||||
Okporn(OkpornProvider),
|
||||
Pornhat(crate::providers::pornhat::PornhatProvider),
|
||||
Perfectgirls(crate::providers::perfectgirls::PerfectgirlsProvider),
|
||||
Okxxx(crate::providers::okxxx::OkxxxProvider),
|
||||
Homoxxx(crate::providers::homoxxx::HomoxxxProvider),
|
||||
// Hentaimoon(crate::providers::hentaimoon::HentaimoonProvider),
|
||||
Missav(crate::providers::missav::MissavProvider),
|
||||
Xxthots(crate::providers::xxthots::XxthotsProvider),
|
||||
Sxyprn(crate::providers::sxyprn::SxyprnProvider),
|
||||
Porn00(crate::providers::porn00::Porn00Provider),
|
||||
// Noodlemagazine(crate::providers::noodlemagazine::NoodlemagazineProvider),
|
||||
Freshporno(crate::providers::freshporno::FreshpornoProvider),
|
||||
Youjizz(crate::providers::youjizz::YoujizzProvider),
|
||||
Paradisehill(crate::providers::paradisehill::ParadisehillProvider),
|
||||
Pornzog(crate::providers::pornzog::PornzogProvider),
|
||||
Omgxxx(crate::providers::omgxxx::OmgxxxProvider),
|
||||
}
|
||||
|
||||
impl Provider for AnyProvider {
|
||||
async fn get_videos(
|
||||
&self,
|
||||
cache: VideoCache,
|
||||
pool: DbPool,
|
||||
sort: String,
|
||||
query: Option<String>,
|
||||
page: String,
|
||||
per_page: String,
|
||||
options: ServerOptions
|
||||
) -> Vec<VideoItem> {
|
||||
fn get_channel(&self, clientversion: ClientVersion) -> Channel {
|
||||
println!(
|
||||
"/api/videos: sort={:?}, query={:?}, page={:?}, provider={:?}",
|
||||
sort, query, page, self
|
||||
"Getting channel for placeholder with client version: {:?}",
|
||||
clientversion
|
||||
);
|
||||
match self {
|
||||
AnyProvider::Perverzija(p) => {
|
||||
p.get_videos(
|
||||
cache.clone(),
|
||||
pool.clone(),
|
||||
sort.clone(),
|
||||
query.clone(),
|
||||
page.clone(),
|
||||
per_page.clone(),
|
||||
options,
|
||||
)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Hanime(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
// AnyProvider::Spankbang(p) => {
|
||||
// p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
// .await
|
||||
// }
|
||||
AnyProvider::Pornhub(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Pmvhaven(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Rule34video(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Redtube(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::All(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Okporn(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Pornhat(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Perfectgirls(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Okxxx(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Homoxxx(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
// AnyProvider::Hentaimoon(p) => {
|
||||
// p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
// .await
|
||||
// }
|
||||
AnyProvider::Missav(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Xxthots(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Sxyprn(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Porn00(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
// AnyProvider::Noodlemagazine(p) => {
|
||||
// p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
// .await
|
||||
// }
|
||||
AnyProvider::Freshporno(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Youjizz(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
},
|
||||
AnyProvider::Paradisehill(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Pornzog(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
AnyProvider::Omgxxx(p) => {
|
||||
p.get_videos(cache, pool, sort, query, page, per_page, options,)
|
||||
.await
|
||||
}
|
||||
let _ = clientversion;
|
||||
Channel {
|
||||
id: "placeholder".to_string(),
|
||||
name: "PLACEHOLDER".to_string(),
|
||||
description: "PLACEHOLDER FOR PARENT CLASS".to_string(),
|
||||
premium: false,
|
||||
favicon: "https://www.google.com/s2/favicons?sz=64&domain=missav.ws".to_string(),
|
||||
status: "active".to_string(),
|
||||
categories: vec![],
|
||||
options: vec![],
|
||||
nsfw: true,
|
||||
cacheDuration: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user