35 lines
882 B
Rust
35 lines
882 B
Rust
use maud::html;
|
|
use rocket::{get, State};
|
|
use serde_json::json;
|
|
|
|
use crate::library::Library;
|
|
|
|
use super::vec_to_api;
|
|
|
|
#[get("/search?<query>&<offset>")]
|
|
pub async fn search(
|
|
query: &str,
|
|
offset: Option<i64>,
|
|
library: &State<Library>,
|
|
) -> Option<serde_json::Value> {
|
|
const NUM_OF_RESULTS: i64 = 20;
|
|
|
|
// get start parameter for search result chunks
|
|
let start = offset.unwrap_or(0);
|
|
|
|
let mut video_matches = library.search_video(query, start, NUM_OF_RESULTS).await;
|
|
|
|
Some(json!(vec_to_api(&mut video_matches).await))
|
|
}
|
|
|
|
#[get("/d/<dir>")]
|
|
pub async fn channel_page(dir: &str, library: &State<Library>) -> Option<serde_json::Value> {
|
|
let mut dir_videos = library.get_directory_videos(dir).await;
|
|
|
|
Some(json!(vec_to_api(&mut dir_videos).await))
|
|
}
|
|
|
|
#[get("/")]
|
|
pub async fn index_page(library: &State<Library>) -> String {
|
|
unimplemented!()
|
|
}
|