diff options
author | metamuffin <metamuffin@disroot.org> | 2023-01-22 13:56:06 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-01-22 13:56:06 +0100 |
commit | ec76bbe5398f51ffa55bfd315b30c0a07245d4e6 (patch) | |
tree | fa0e1723f861de6fee21a35524bb7768fab0b6ce /server/src/routes/ui/player.rs | |
parent | 84e093afa908dc68a7b0ae97ba8dc76aa0901d26 (diff) | |
download | jellything-ec76bbe5398f51ffa55bfd315b30c0a07245d4e6.tar jellything-ec76bbe5398f51ffa55bfd315b30c0a07245d4e6.tar.bz2 jellything-ec76bbe5398f51ffa55bfd315b30c0a07245d4e6.tar.zst |
this is *horrible*
Diffstat (limited to 'server/src/routes/ui/player.rs')
-rw-r--r-- | server/src/routes/ui/player.rs | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/server/src/routes/ui/player.rs b/server/src/routes/ui/player.rs index c93d2c1..764f583 100644 --- a/server/src/routes/ui/player.rs +++ b/server/src/routes/ui/player.rs @@ -1,16 +1,15 @@ -use super::HtmlTemplate; +use super::{account::session::Session, layout::LayoutPage, HtmlTemplate}; use crate::{ - library::Item, + library::{Item, Library}, routes::{ stream::stream_uri, - ui::{error::MyResult, node::rocket_uri_macro_r_item_assets}, + ui::{error::MyResult, layout::DynLayoutPage, node::rocket_uri_macro_r_item_assets}, }, - AppState, }; use jellycommon::SourceTrackKind; use log::warn; use rocket::{get, uri, FromForm, State}; -use std::{path::PathBuf, sync::Arc}; +use std::{alloc::Layout, path::PathBuf, sync::Arc}; pub fn player_uri(path: &PathBuf) -> String { format!("/player/{}", path.to_str().unwrap()) @@ -26,12 +25,12 @@ pub struct PlayerConfig { #[get("/player/<path..>?<conf..>", rank = 4)] pub fn r_player( - state: &State<AppState>, + _sess: Session, + library: &State<Library>, path: PathBuf, conf: PlayerConfig, -) -> MyResult<HtmlTemplate<markup::DynRender<'_>>> { - warn!("{conf:?}"); - let item = state.library.nested_path(&path)?.get_item()?; +) -> MyResult<DynLayoutPage<'_>> { + let item = library.nested_path(&path)?.get_item()?; if conf.a.is_none() && conf.v.is_none() && conf.s.is_none() { return player_conf(item.clone()); } @@ -43,15 +42,15 @@ pub fn r_player( .chain(conf.s.into_iter()) .collect::<Vec<_>>(); - Ok(HtmlTemplate( - item.info.title.to_owned(), - markup::new! { + Ok(LayoutPage { + title: item.info.title.to_owned(), + content: markup::new! { video[src=stream_uri(&item.lib_path, &tracks), controls]; }, - )) + }) } -pub fn player_conf<'a>(item: Arc<Item>) -> MyResult<HtmlTemplate<markup::DynRender<'a>>> { +pub fn player_conf<'a>(item: Arc<Item>) -> MyResult<DynLayoutPage<'a>> { let mut audio_tracks = vec![]; let mut video_tracks = vec![]; let mut sub_tracks = vec![]; @@ -63,9 +62,9 @@ pub fn player_conf<'a>(item: Arc<Item>) -> MyResult<HtmlTemplate<markup::DynRend } } - Ok(HtmlTemplate( - "Configure Player".to_string(), - markup::new! { + Ok(LayoutPage { + title: "Configure Player".to_string(), + content: markup::new! { // img.backdrop[src=uri!(r_item_assets(&item.lib_path)).to_string()]; form.playerconf[method = "GET", action = ""] { h2 { "Select tracks for " @item.info.title } @@ -103,5 +102,5 @@ pub fn player_conf<'a>(item: Arc<Item>) -> MyResult<HtmlTemplate<markup::DynRend input[type="submit", value="Start playback"]; } }, - )) + }) } |