From ed2b5a8911e46e9cc7242aff09b8fa61f210d185 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 16 Jun 2023 18:18:53 +0200 Subject: asset api --- server/src/library.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'server/src/library.rs') diff --git a/server/src/library.rs b/server/src/library.rs index 330f382..ffd8b4a 100644 --- a/server/src/library.rs +++ b/server/src/library.rs @@ -14,6 +14,8 @@ use std::{ sync::Arc, }; +use crate::{routes::ui::node::AssetRole, CONF}; + pub struct Library { pub root: Arc, pub root_path: PathBuf, @@ -183,6 +185,22 @@ impl Node { bail!("did somebody really put a fifo or socket in the library?!") } } + + pub fn get_asset(&self, library: &Library, role: AssetRole) -> PathBuf { + let path = match role { + AssetRole::Backdrop => self + .common() + .backdrop + .clone() + .or_else(|| self.common().poster.clone()), + AssetRole::Poster => self.common().poster.clone(), + }; + if let Some(p) = path { + library.root_path.join(p) + } else { + CONF.asset_path.join("fallback.jpeg") + } + } } impl Item { -- cgit v1.2.3-70-g09d2