From cc6d2ba0174da28533f51fe3915872110c242b1e Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 5 Aug 2023 22:55:33 +0200 Subject: use parent assets as fallback --- server/src/routes/ui/assets.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'server/src') diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs index 4b5c64a..c00749f 100644 --- a/server/src/routes/ui/assets.rs +++ b/server/src/routes/ui/assets.rs @@ -31,15 +31,23 @@ pub async fn r_item_assets( db: &State, ) -> Result<(ContentType, CacheControlFile), MyError> { let node = db.node.get(&id)?.ok_or(anyhow!("node does not exist"))?; - let path = match role { + let mut asset = match role { AssetRole::Backdrop => node.private.backdrop, AssetRole::Poster => node.private.poster, - } - .map(|e| e.path()) - .unwrap_or_else(|| { - CONF.asset_path - .join(PathBuf::from_str("fallback.jpeg").unwrap()) - }); + }; + if let None = asset { + if let Some(parent) = &node.public.parent { + let parent = db.node.get(parent)?.ok_or(anyhow!("node does not exist"))?; + asset = match role { + AssetRole::Backdrop => parent.private.backdrop, + AssetRole::Poster => parent.private.poster, + }; + } + }; + let asset = asset.unwrap_or(AssetLocation::Assets( + PathBuf::from_str("fallback.jpeg").unwrap(), + )); + let path = asset.path(); info!("loading asset from {path:?}"); let ext = path .extension() -- cgit v1.2.3-70-g09d2