This commit is contained in:
JMARyA 2023-10-06 18:29:55 +02:00
commit e431d3b745
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
17 changed files with 3489 additions and 0 deletions

45
src/pages/assets.rs Normal file
View file

@ -0,0 +1,45 @@
use actix_web::{get, HttpRequest, Responder};
#[get("/icon")]
pub async fn icon_resource(_r: HttpRequest) -> impl Responder {
web_base::send_data(
include_bytes!("../icon.png").to_vec(),
"image/png",
"icon.png",
)
}
#[get("/video/raw")]
pub async fn video_file(r: HttpRequest) -> Option<impl Responder> {
let library: &actix_web::web::Data<crate::library::Library> = r.app_data().unwrap();
let query = web_base::parse_query_string(r.query_string());
if let Some(video_id) = query.get("v") {
let (_, mut video) = if let Some((channel, video)) = library.get_video_by_hash(video_id) {
(channel, video)
} else {
library.get_video_by_youtube_id(video_id).unwrap()
};
return Some(actix_files::NamedFile::open(video.path().unwrap()).unwrap());
}
None
}
#[get("/video/thumbnail")]
pub async fn video_thumbnail(r: HttpRequest) -> Option<impl Responder> {
let library: &actix_web::web::Data<crate::library::Library> = r.app_data().unwrap();
let query = web_base::parse_query_string(r.query_string());
if let Some(video_id) = query.get("v") {
let (_, mut video) = if let Some((channel, video)) = library.get_video_by_hash(video_id) {
(channel, video)
} else {
library.get_video_by_youtube_id(video_id).unwrap()
};
let path = video.path().unwrap();
let parent = path.parent().unwrap();
let thumbnail_path = path.file_stem().unwrap().to_str().unwrap();
let thumbnail_path = parent.join(thumbnail_path);
let thumbnail_path = thumbnail_path.to_str().unwrap();
return Some(actix_files::NamedFile::open(format!("{thumbnail_path}.jpg")).unwrap());
}
None
}