From e43dc75e3cfb950ac0d0308900c20fa292de0c46 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 3 Feb 2025 22:42:13 +0100 Subject: some jellyfin api endpoints --- server/src/routes/ui/account/session/guard.rs | 2 ++ server/src/routes/ui/assets.rs | 12 +++++------- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'server/src/routes/ui') diff --git a/server/src/routes/ui/account/session/guard.rs b/server/src/routes/ui/account/session/guard.rs index 57540cf..3a3f6d7 100644 --- a/server/src/routes/ui/account/session/guard.rs +++ b/server/src/routes/ui/account/session/guard.rs @@ -23,6 +23,8 @@ impl Session { { let token = req .query_value("session") + .or(req.query_value("api_key")) + .or(req.headers().get_one("X-MediaBrowser-Token").map(Ok)) // for jellyfin compat .map(|e| e.expect("str parse should not fail, right?")) .or(req.cookies().get("session").map(|cookie| cookie.value())) .ok_or(anyhow!("not logged in"))?; diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs index a01c8bc..bd48f35 100644 --- a/server/src/routes/ui/assets.rs +++ b/server/src/routes/ui/assets.rs @@ -80,10 +80,9 @@ pub async fn r_item_poster( } }; let asset = asset.unwrap_or_else(|| { - AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()) - .ser() + AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()).ser() }); - Ok(Redirect::temporary(rocket::uri!(r_asset(asset.0, width)))) + Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width)))) } #[get("/n//backdrop?")] pub async fn r_item_backdrop( @@ -105,10 +104,9 @@ pub async fn r_item_backdrop( } }; let asset = asset.unwrap_or_else(|| { - AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()) - .ser() + AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()).ser() }); - Ok(Redirect::temporary(rocket::uri!(r_asset(asset.0, width)))) + Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width)))) } #[get("/n//person//asset?&")] @@ -137,7 +135,7 @@ pub async fn r_person_asset( .headshot .to_owned() .unwrap_or(AssetInner::Assets("fallback-Person.avif".into()).ser()); - Ok(Redirect::temporary(rocket::uri!(r_asset(asset.0, width)))) + Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width)))) } // TODO this can create "federation recursion" because track selection cannot be relied on. -- cgit v1.2.3-70-g09d2