more fixes
This commit is contained in:
@@ -58,20 +58,39 @@ impl Provider for AllProvider {
|
||||
.collect();
|
||||
|
||||
let futures = providers.iter().map(|provider| {
|
||||
provider.get_videos(
|
||||
cache.clone(),
|
||||
pool.clone(),
|
||||
sort.clone(),
|
||||
query.clone(),
|
||||
page.clone(),
|
||||
per_page.clone(),
|
||||
options.clone()
|
||||
let provider = provider.clone();
|
||||
let cache = cache.clone();
|
||||
let pool = pool.clone();
|
||||
let sort = sort.clone();
|
||||
let query = query.clone();
|
||||
let page = page.clone();
|
||||
let per_page = per_page.clone();
|
||||
let options = options.clone();
|
||||
async move {
|
||||
match tokio::time::timeout(
|
||||
std::time::Duration::from_secs(55),
|
||||
provider.get_videos(
|
||||
cache,
|
||||
pool,
|
||||
sort,
|
||||
query,
|
||||
page,
|
||||
per_page,
|
||||
options,
|
||||
),
|
||||
)
|
||||
.await
|
||||
{
|
||||
Ok(v) => v,
|
||||
Err(_) => {
|
||||
// timed out -> return empty result for this provider
|
||||
vec![]
|
||||
}
|
||||
}
|
||||
}
|
||||
}).collect::<Vec<_>>();
|
||||
let results:Vec<Vec<VideoItem>> = join_all(futures).await;
|
||||
let video_items: Vec<VideoItem> = interleave(&results);
|
||||
|
||||
|
||||
return video_items;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user