more fixes

This commit is contained in:
Simon
2026-01-02 15:32:07 +00:00
parent 5ab2afa967
commit 97eeccf2bd
3 changed files with 237 additions and 279 deletions

View File

@@ -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;
}