background loading
This commit is contained in:
28
src/api.rs
28
src/api.rs
@@ -3,6 +3,7 @@ use htmlentity::types::Byte;
|
||||
use ntex::http::header;
|
||||
use ntex::web;
|
||||
use ntex::web::HttpRequest;
|
||||
use tokio::{task, time};
|
||||
|
||||
use crate::providers::hanime::HanimeProvider;
|
||||
use crate::providers::perverzija::PerverzijaProvider;
|
||||
@@ -324,9 +325,34 @@ async fn videos_post(
|
||||
let provider = get_provider(channel.as_str())
|
||||
.ok_or_else(|| web::error::ErrorBadRequest("Invalid channel".to_string()))?;
|
||||
let video_items = provider
|
||||
.get_videos(cache.get_ref().clone(), pool.get_ref().clone(), channel, sort, query, page.to_string(), perPage.to_string(), featured)
|
||||
.get_videos(cache.get_ref().clone(), pool.get_ref().clone(), channel.clone(), sort.clone(), query.clone(), page.to_string(), perPage.to_string(), featured.clone())
|
||||
.await;
|
||||
videos.items = video_items.clone();
|
||||
//###
|
||||
let next_page = page.to_string().parse::<i32>().unwrap_or(1) + 1;
|
||||
let provider_clone = provider.clone();
|
||||
let cache_clone = cache.get_ref().clone();
|
||||
let pool_clone = pool.get_ref().clone();
|
||||
let channel_clone = channel.clone();
|
||||
let sort_clone = sort.clone();
|
||||
let query_clone = query.clone();
|
||||
let per_page_clone = perPage.to_string();
|
||||
let featured_clone = featured.clone();
|
||||
task::spawn_local(async move {
|
||||
let _ = provider_clone
|
||||
.get_videos(
|
||||
cache_clone,
|
||||
pool_clone,
|
||||
channel_clone,
|
||||
sort_clone,
|
||||
query_clone,
|
||||
next_page.to_string(),
|
||||
per_page_clone,
|
||||
featured_clone,
|
||||
)
|
||||
.await;
|
||||
});
|
||||
//###
|
||||
Ok(web::HttpResponse::Ok().json(&videos))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user