aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/player.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-29 17:06:23 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-29 17:06:23 +0200
commit212a0f23bc894faf88e159560c113f504349cc05 (patch)
treeee2ff0ff3b185d1874eb0e8fc4b75f1badf659b8 /server/src/ui/player.rs
parentf73aa32549743b2967160d38c1622199c41524a4 (diff)
downloadjellything-212a0f23bc894faf88e159560c113f504349cc05.tar
jellything-212a0f23bc894faf88e159560c113f504349cc05.tar.bz2
jellything-212a0f23bc894faf88e159560c113f504349cc05.tar.zst
comiles again but still many logic holes
Diffstat (limited to 'server/src/ui/player.rs')
-rw-r--r--server/src/ui/player.rs30
1 files changed, 20 insertions, 10 deletions
diff --git a/server/src/ui/player.rs b/server/src/ui/player.rs
index 573530b..94ca6ac 100644
--- a/server/src/ui/player.rs
+++ b/server/src/ui/player.rs
@@ -4,7 +4,7 @@
Copyright (C) 2025 metamuffin <metamuffin.org>
*/
use super::error::MyResult;
-use crate::{database::Database, locale::AcceptLanguage};
+use crate::{database::Database, helper::A, locale::AcceptLanguage};
use jellybase::CONF;
use jellycommon::{
api::NodeFilterSort,
@@ -24,6 +24,7 @@ use rocket::{
response::{content::RawHtml, Redirect},
Either, State,
};
+use std::time::Duration;
fn jellynative_url(action: &str, seek: f64, secret: &str, node: &str, session: &str) -> String {
let protocol = if CONF.tls { "https" } else { "http" };
@@ -41,31 +42,38 @@ fn jellynative_url(action: &str, seek: f64, secret: &str, node: &str, session: &
#[get("/n/<id>/player?<t>", rank = 4)]
pub fn r_player(
- session: Session,
+ session: A<Session>,
lang: AcceptLanguage,
db: &State<Database>,
t: Option<f64>,
- id: NodeID,
+ id: A<NodeID>,
) -> MyResult<Either<RawHtml<String>, Redirect>> {
let AcceptLanguage(lang) = lang;
- let r = get_node(&db, id, &session, false, true, NodeFilterSort::default())?;
+ let r = get_node(
+ &db,
+ id.0,
+ &session.0,
+ false,
+ true,
+ NodeFilterSort::default(),
+ )?;
let native_session = |action: &str| {
Ok(Either::Right(Redirect::temporary(jellynative_url(
action,
t.unwrap_or(0.),
- &session.user.native_secret,
- &id.to_string(),
+ &session.0.user.native_secret,
+ &id.0.to_string(),
&jellylogic::session::create(
- session.user.name,
+ session.0.user.name.clone(),
PermissionSet::default(), // TODO
- chrono::Duration::hours(24),
+ Duration::from_hours(24),
),
))))
};
- match session.user.player_preference {
+ match session.0.user.player_preference {
PlayerKind::Browser => (),
PlayerKind::Native => {
return native_session("player-v2");
@@ -103,7 +111,9 @@ pub fn r_player(
},
RenderInfo {
importing: is_importing(),
- session: Some(SessionInfo { user: session.user }),
+ session: Some(SessionInfo {
+ user: session.0.user,
+ }),
},
lang,
))))