From db511d3fe50f05329615f718515fab1b80d9e06a Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 29 Jan 2025 18:03:06 +0100 Subject: no direct redb access --- server/src/routes/ui/assets.rs | 71 ++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 41 deletions(-) (limited to 'server/src/routes/ui/assets.rs') diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs index 7eb8e98..689c7f1 100644 --- a/server/src/routes/ui/assets.rs +++ b/server/src/routes/ui/assets.rs @@ -7,12 +7,7 @@ use crate::routes::ui::{account::session::Session, error::MyResult, CacheControl use anyhow::{anyhow, Context}; use base64::Engine; use jellybase::{ - assetfed::AssetInner, - cache::async_cache_file, - database::{DataAcid, TableExt, T_NODE}, - federation::Federation, - permission::NodePermissionExt, - CONF, + assetfed::AssetInner, cache::async_cache_file, database::Database, federation::Federation, CONF, }; use jellycommon::{LocalTrack, PeopleGroup, SourceTrackKind, TrackSource}; use log::info; @@ -67,23 +62,21 @@ pub async fn resolve_asset(asset: AssetInner) -> anyhow::Result { #[get("/n//poster?")] pub async fn r_item_poster( - session: Session, - db: &State, + _session: Session, + db: &State, id: &str, width: Option, ) -> MyResult { - let node = T_NODE - .get(db, id)? - .only_if_permitted(&session.user.permissions) + // TODO perm + let node = db + .get_node_slug(id)? .ok_or(anyhow!("node does not exist"))?; - let mut asset = node.poster; + let mut asset = node.poster.clone(); if asset.is_none() { - if let Some(parent) = &node.parents.last() { - let parent = T_NODE - .get(db, parent.as_str())? - .ok_or(anyhow!("node does not exist"))?; - asset = parent.poster; + if let Some(parent) = node.parents.last().copied() { + let parent = db.get_node(parent)?.ok_or(anyhow!("node does not exist"))?; + asset = parent.poster.clone(); } }; let asset = asset.unwrap_or_else(|| { @@ -94,23 +87,21 @@ pub async fn r_item_poster( } #[get("/n//backdrop?")] pub async fn r_item_backdrop( - session: Session, - db: &State, + _session: Session, + db: &State, id: &str, width: Option, ) -> MyResult { - let node = T_NODE - .get(db, id)? - .only_if_permitted(&session.user.permissions) + // TODO perm + let node = db + .get_node_slug(id)? .ok_or(anyhow!("node does not exist"))?; - let mut asset = node.poster; + let mut asset = node.backdrop.clone(); if asset.is_none() { - if let Some(parent) = &node.parents.last() { - let parent = T_NODE - .get(db, parent.as_str())? - .ok_or(anyhow!("node does not exist"))?; - asset = parent.poster; + if let Some(parent) = node.parents.last().copied() { + let parent = db.get_node(parent)?.ok_or(anyhow!("node does not exist"))?; + asset = parent.backdrop.clone(); } }; let asset = asset.unwrap_or_else(|| { @@ -122,19 +113,18 @@ pub async fn r_item_backdrop( #[get("/n//person//asset?&")] pub async fn r_person_asset( - session: Session, - db: &State, + _session: Session, + db: &State, id: &str, index: usize, group: String, width: Option, ) -> MyResult { - T_NODE - .get(db, id)? - .only_if_permitted(&session.user.permissions) - .ok_or(anyhow!("node does not exist"))?; + // TODO perm - let node = T_NODE.get(db, id)?.unwrap_or_default(); + let node = db + .get_node_slug(id)? + .ok_or(anyhow!("node does not exist"))?; let app = node .people .get(&PeopleGroup::from_str(&group).map_err(|()| anyhow!("unknown people group"))?) @@ -155,19 +145,18 @@ pub async fn r_person_asset( #[get("/n//thumbnail?&")] pub async fn r_node_thumbnail( - session: Session, - db: &State, + _session: Session, + db: &State, fed: &State, id: &str, t: f64, width: Option, ) -> MyResult { - let node = T_NODE - .get(db, id)? - .only_if_permitted(&session.user.permissions) + let node = db + .get_node_slug(id)? .ok_or(anyhow!("node does not exist"))?; - let media = node.media.ok_or(anyhow!("no media"))?; + let media = node.media.as_ref().ok_or(anyhow!("no media"))?; let (thumb_track_index, thumb_track) = media .tracks .iter() -- cgit v1.2.3-70-g09d2