aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/assets.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/ui/assets.rs')
-rw-r--r--server/src/ui/assets.rs59
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!()
}
};