aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/src/routes/ui/assets.rs22
1 files changed, 15 insertions, 7 deletions
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<Database>,
) -> 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()