diff options
Diffstat (limited to 'server/src/ui/assets.rs')
-rw-r--r-- | server/src/ui/assets.rs | 59 |
1 files changed, 29 insertions, 30 deletions
diff --git a/server/src/ui/assets.rs b/server/src/ui/assets.rs index 3b9319e..596661a 100644 --- a/server/src/ui/assets.rs +++ b/server/src/ui/assets.rs @@ -4,11 +4,9 @@ Copyright (C) 2025 metamuffin <metamuffin.org> */ use super::error::MyResult; -use crate::helper::{cache::CacheControlFile, A}; +use crate::{helper::{cache::CacheControlFile, A}, CONF}; use anyhow::{anyhow, bail, Context}; -use base64::Engine; -use jellybase::{assetfed::AssetInner, database::Database, federation::Federation, CONF}; -use jellycache::async_cache_file; +use jellybase::{assetfed::AssetInner, database::Database}; use jellycommon::{LocalTrack, NodeID, PeopleGroup, SourceTrackKind, TrackSource}; use jellylogic::session::Session; use log::info; @@ -21,22 +19,23 @@ pub const AVIF_SPEED: u8 = 5; #[get("/asset/<token>?<width>")] pub async fn r_asset( _session: A<Session>, - fed: &State<Federation>, token: &str, width: Option<usize>, ) -> MyResult<(ContentType, CacheControlFile)> { let width = width.unwrap_or(2048); let asset = AssetInner::deser(token)?; - let path = if let AssetInner::Federated { host, asset } = asset { - let session = fed.get_session(&host).await?; + let path = + // if let AssetInner::Federated { host, asset } = asset { + // let session = fed.get_session(&host).await?; - let asset = base64::engine::general_purpose::URL_SAFE.encode(asset); - async_cache_file("fed-asset", &asset, |out| async { - session.asset(out, &asset, width).await - }) - .await? - } else { + // let asset = base64::engine::general_purpose::URL_SAFE.encode(asset); + // async_cache_file("fed-asset", &asset, |out| async { + // session.asset(out, &asset, width).await + // }) + // .await? + // } else + { let source = resolve_asset(asset).await.context("resolving asset")?; // fit the resolution into a finite set so the maximum cache is finite too. @@ -56,7 +55,7 @@ pub async fn resolve_asset(asset: AssetInner) -> anyhow::Result<PathBuf> { match asset { AssetInner::Cache(c) => Ok(c.abs()), AssetInner::Assets(c) => Ok(CONF.asset_path.join(c)), - AssetInner::Media(c) => Ok(CONF.media_path.join(c)), + AssetInner::Media(c) => Ok(c), _ => bail!("wrong asset type"), } } @@ -138,7 +137,6 @@ pub async fn r_person_asset( pub async fn r_node_thumbnail( _session: A<Session>, db: &State<Database>, - fed: &State<Federation>, id: A<NodeID>, t: f64, width: Option<usize>, @@ -146,7 +144,7 @@ pub async fn r_node_thumbnail( let node = db.get_node(id.0)?.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 + let (thumb_track_index, _thumb_track) = media .tracks .iter() .enumerate() @@ -171,23 +169,24 @@ pub async fn r_node_thumbnail( return Err(anyhow!("track set to wrong asset type").into()); }; // the track selected might be different from thumb_track - jellytranscoder::thumbnail::create_thumbnail(&CONF.media_path.join(path), t).await? + jellytranscoder::thumbnail::create_thumbnail(&path, t).await? } TrackSource::Remote(_) => { - // TODO in the new system this is preferrably a property of node ext for regular fed - let session = fed - .get_session( - thumb_track - .federated - .last() - .ok_or(anyhow!("federation broken"))?, - ) - .await?; + // // TODO in the new system this is preferrably a property of node ext for regular fed + // let session = fed + // .get_session( + // thumb_track + // .federated + // .last() + // .ok_or(anyhow!("federation broken"))?, + // ) + // .await?; - async_cache_file("fed-thumb", (id.0, t as i64), |out| { - session.node_thumbnail(out, id.0.into(), 2048, t) - }) - .await? + // async_cache_file("fed-thumb", (id.0, t as i64), |out| { + // session.node_thumbnail(out, id.0.into(), 2048, t) + // }) + // .await? + todo!() } }; |