diff options
Diffstat (limited to 'server/src/routes/ui/assets.rs')
-rw-r--r-- | server/src/routes/ui/assets.rs | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs index bd48f35..a925e31 100644 --- a/server/src/routes/ui/assets.rs +++ b/server/src/routes/ui/assets.rs @@ -9,7 +9,7 @@ use base64::Engine; use jellybase::{ assetfed::AssetInner, cache::async_cache_file, database::Database, federation::Federation, CONF, }; -use jellycommon::{LocalTrack, PeopleGroup, SourceTrackKind, TrackSource}; +use jellycommon::{LocalTrack, NodeID, PeopleGroup, SourceTrackKind, TrackSource}; use log::info; use rocket::{get, http::ContentType, response::Redirect, State}; use std::{path::PathBuf, str::FromStr}; @@ -64,13 +64,11 @@ pub async fn resolve_asset(asset: AssetInner) -> anyhow::Result<PathBuf> { pub async fn r_item_poster( _session: Session, db: &State<Database>, - id: &str, + id: NodeID, width: Option<usize>, ) -> MyResult<Redirect> { // TODO perm - let node = db - .get_node_slug(id)? - .ok_or(anyhow!("node does not exist"))?; + let node = db.get_node(id)?.ok_or(anyhow!("node does not exist"))?; let mut asset = node.poster.clone(); if asset.is_none() { @@ -84,17 +82,16 @@ pub async fn r_item_poster( }); Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width)))) } + #[get("/n/<id>/backdrop?<width>")] pub async fn r_item_backdrop( _session: Session, db: &State<Database>, - id: &str, + id: NodeID, width: Option<usize>, ) -> MyResult<Redirect> { // TODO perm - let node = db - .get_node_slug(id)? - .ok_or(anyhow!("node does not exist"))?; + let node = db.get_node(id)?.ok_or(anyhow!("node does not exist"))?; let mut asset = node.backdrop.clone(); if asset.is_none() { @@ -113,16 +110,14 @@ pub async fn r_item_backdrop( pub async fn r_person_asset( _session: Session, db: &State<Database>, - id: &str, + id: NodeID, index: usize, group: String, width: Option<usize>, ) -> MyResult<Redirect> { // TODO perm - let node = db - .get_node_slug(id)? - .ok_or(anyhow!("node does not exist"))?; + let node = db.get_node(id)?.ok_or(anyhow!("node does not exist"))?; let app = node .people .get(&PeopleGroup::from_str(&group).map_err(|()| anyhow!("unknown people group"))?) @@ -146,13 +141,11 @@ pub async fn r_node_thumbnail( _session: Session, db: &State<Database>, fed: &State<Federation>, - id: &str, + id: NodeID, t: f64, width: Option<usize>, ) -> MyResult<Redirect> { - let node = db - .get_node_slug(id)? - .ok_or(anyhow!("node does not exist"))?; + let node = db.get_node(id)?.ok_or(anyhow!("node does not exist"))?; let media = node.media.as_ref().ok_or(anyhow!("no media"))?; let (thumb_track_index, thumb_track) = media @@ -190,8 +183,8 @@ pub async fn r_node_thumbnail( ) .await?; - async_cache_file(&["fed-thumb", id, &format!("{t}")], |out| { - session.node_thumbnail(out, id, 2048, t) + async_cache_file(&["fed-thumb", &format!("{id} {t}")], |out| { + session.node_thumbnail(out, id.into(), 2048, t) }) .await? } |