all provider
This commit is contained in:
@@ -4,9 +4,11 @@ use futures::future::join_all;
|
||||
use serde_json::error::Category;
|
||||
use wreq::Client;
|
||||
use wreq_util::Emulation;
|
||||
use crate::api::get_provider;
|
||||
use crate::db;
|
||||
use crate::providers::Provider;
|
||||
use crate::providers::{AnyProvider, Provider};
|
||||
use crate::util::cache::VideoCache;
|
||||
use crate::util::interleave;
|
||||
use crate::videos::{self, ServerOptions, VideoItem};
|
||||
use crate::DbPool;
|
||||
|
||||
@@ -34,17 +36,37 @@ impl Provider for AllProvider {
|
||||
&self,
|
||||
cache: VideoCache,
|
||||
pool: DbPool,
|
||||
_channel: String,
|
||||
sort: String,
|
||||
query: Option<String>,
|
||||
page: String,
|
||||
per_page: String,
|
||||
options: ServerOptions,
|
||||
) -> Vec<VideoItem> {
|
||||
let sites = options.sites.unwrap();
|
||||
let mut sites_str = options.clone().sites.unwrap();
|
||||
if sites_str.is_empty() {
|
||||
sites_str = "perverzija,hanime,spankbang,pmvhaven,redtube,pornhub,rule34video".to_string();
|
||||
}
|
||||
let sites = sites_str
|
||||
.split(',')
|
||||
.map(|s| s.to_string()) // or s.to_owned()
|
||||
.collect::<Vec<String>>();
|
||||
let providers = sites.iter().map(|el| get_provider(el.as_str()).unwrap()).collect::<Vec<AnyProvider>>();
|
||||
|
||||
let futures = providers.iter().map(|provider| {
|
||||
provider.get_videos(
|
||||
cache.clone(),
|
||||
pool.clone(),
|
||||
sort.clone(),
|
||||
query.clone(),
|
||||
page.clone(),
|
||||
per_page.clone(),
|
||||
options.clone()
|
||||
)
|
||||
}).collect::<Vec<_>>();
|
||||
let results:Vec<Vec<VideoItem>> = join_all(futures).await;
|
||||
let video_items: Vec<VideoItem> = interleave(&results);
|
||||
|
||||
|
||||
println!("Sites: {:?}", sites);
|
||||
|
||||
return vec![];
|
||||
return video_items;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user