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.rs93
1 files changed, 47 insertions, 46 deletions
diff --git a/server/src/ui/assets.rs b/server/src/ui/assets.rs
index 97fd9c7..969f3ed 100644
--- a/server/src/ui/assets.rs
+++ b/server/src/ui/assets.rs
@@ -9,12 +9,8 @@ use crate::{
CONF,
};
use anyhow::{anyhow, bail, Context};
-use jellycommon::{NodeID, PeopleGroup};
-use jellyimport::asset_token::AssetInner;
-use jellylogic::{
- assets::{get_node_backdrop, get_node_person_asset, get_node_poster, get_node_thumbnail},
- session::Session,
-};
+use jellycommon::NodeID;
+use jellylogic::session::Session;
use log::info;
use rocket::{get, http::ContentType, response::Redirect};
use std::path::PathBuf;
@@ -28,42 +24,43 @@ pub async fn r_asset(
token: &str,
width: Option<usize>,
) -> MyResult<(ContentType, CacheControlFile)> {
- let width = width.unwrap_or(2048);
- let asset = AssetInner::deser(token)?;
+ // let width = width.unwrap_or(2048);
+ // let asset = AssetInner::deser(token)?;
- // if let AssetInner::Federated { host, asset } = asset {
- // let session = fed.get_session(&host).await?;
+ // // 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 path = {
- let source = resolve_asset(asset).await.context("resolving asset")?;
+ // // 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 path = {
+ // let source = resolve_asset(asset).await.context("resolving asset")?;
- // fit the resolution into a finite set so the maximum cache is finite too.
- let width = 2usize.pow(width.clamp(128, 2048).ilog2());
- jellytranscoder::image::transcode(&source, AVIF_QUALITY, AVIF_SPEED, width)
- .await
- .context("transcoding asset")?
- };
- info!("loading asset from {path:?}");
- Ok((
- ContentType::AVIF,
- CacheControlFile::new_cachekey(&path.abs()).await?,
- ))
+ // // fit the resolution into a finite set so the maximum cache is finite too.
+ // let width = 2usize.pow(width.clamp(128, 2048).ilog2());
+ // jellytranscoder::image::transcode(&source, AVIF_QUALITY, AVIF_SPEED, width)
+ // .await
+ // .context("transcoding asset")?
+ // };
+ // info!("loading asset from {path:?}");
+ // Ok((
+ // ContentType::AVIF,
+ // CacheControlFile::new_cachekey(&path.abs()).await?,
+ // ))
+ todo!()
}
-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(c),
- _ => bail!("wrong asset type"),
- }
-}
+// 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(c),
+// _ => bail!("wrong asset type"),
+// }
+// }
#[get("/n/<id>/poster?<width>")]
pub async fn r_item_poster(
@@ -71,8 +68,9 @@ pub async fn r_item_poster(
id: A<NodeID>,
width: Option<usize>,
) -> MyResult<Redirect> {
- let asset = get_node_poster(&session.0, id.0)?;
- Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width))))
+ // let asset = get_node_poster(&session.0, id.0)?;
+ // Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width))))
+ Err(anyhow!("a").into())
}
#[get("/n/<id>/backdrop?<width>")]
@@ -81,8 +79,9 @@ pub async fn r_item_backdrop(
id: A<NodeID>,
width: Option<usize>,
) -> MyResult<Redirect> {
- let asset = get_node_backdrop(&session.0, id.0)?;
- Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width))))
+ // let asset = get_node_backdrop(&session.0, id.0)?;
+ // Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width))))
+ Err(anyhow!("a").into())
}
#[get("/n/<id>/person/<index>/asset?<group>&<width>")]
@@ -93,9 +92,10 @@ pub async fn r_person_asset(
group: String,
width: Option<usize>,
) -> MyResult<Redirect> {
- let group = PeopleGroup::from_str_opt(&group).ok_or(anyhow!("unknown people group"))?;
- let asset = get_node_person_asset(&session.0, id.0, group, index)?;
- Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width))))
+ // let group = PeopleGroup::from_str_opt(&group).ok_or(anyhow!("unknown people group"))?;
+ // let asset = get_node_person_asset(&session.0, id.0, group, index)?;
+ // Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width))))
+ Err(anyhow!("a").into())
}
#[get("/n/<id>/thumbnail?<t>&<width>")]
@@ -105,6 +105,7 @@ pub async fn r_node_thumbnail(
t: f64,
width: Option<usize>,
) -> MyResult<Redirect> {
- let asset = get_node_thumbnail(&session.0, id.0, t).await?;
- Ok(Redirect::temporary(rocket::uri!(r_asset(asset.0, width))))
+ // let asset = get_node_thumbnail(&session.0, id.0, t).await?;
+ // Ok(Redirect::temporary(rocket::uri!(r_asset(asset.0, width))))
+ Err(anyhow!("a").into())
}