aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui/player.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/ui/player.rs')
-rw-r--r--server/src/routes/ui/player.rs35
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"];
}
},
- ))
+ })
}