diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-11-29 13:32:52 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-11-29 13:32:52 +0100 |
| commit | 5db15c323d76dca9ae71b0204d63dcb09fbbcbc5 (patch) | |
| tree | 4f69e58c9b6825b7b602712893950673abf9c286 /logic/src | |
| parent | bac47e456085ea153ae6ae1b1e28e41868693c9c (diff) | |
| download | jellything-5db15c323d76dca9ae71b0204d63dcb09fbbcbc5.tar jellything-5db15c323d76dca9ae71b0204d63dcb09fbbcbc5.tar.bz2 jellything-5db15c323d76dca9ae71b0204d63dcb09fbbcbc5.tar.zst | |
remove asset token; db json
Diffstat (limited to 'logic/src')
| -rw-r--r-- | logic/src/assets.rs | 215 |
1 files changed, 108 insertions, 107 deletions
diff --git a/logic/src/assets.rs b/logic/src/assets.rs index 02d0c2e..068576b 100644 --- a/logic/src/assets.rs +++ b/logic/src/assets.rs @@ -6,124 +6,125 @@ use crate::{DATABASE, session::Session}; use anyhow::{Result, anyhow}; -use jellycommon::{Asset, LocalTrack, NodeID, PeopleGroup, SourceTrackKind, TrackSource}; -use jellyimport_asset_token::AssetInner; +use jellycommon::{Asset, LocalTrack, NodeID, SourceTrackKind, TrackSource}; -pub fn get_node_backdrop(_session: &Session, id: NodeID) -> Result<Asset> { - // TODO perm - let node = DATABASE - .get_node(id)? - .ok_or(anyhow!("node does not exist"))?; +// pub fn get_node_backdrop(_session: &Session, id: NodeID) -> Result<Asset> { +// // TODO perm +// let node = DATABASE +// .get_node(id)? +// .ok_or(anyhow!("node does not exist"))?; - let mut asset = node.backdrop.clone(); - if asset.is_none() - && let Some(parent) = node.parents.last().copied() { - let parent = DATABASE - .get_node(parent)? - .ok_or(anyhow!("node does not exist"))?; - asset = parent.backdrop.clone(); - }; - Ok(asset.unwrap_or_else(|| { - AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()).ser() - })) -} -pub fn get_node_poster(_session: &Session, id: NodeID) -> Result<Asset> { - // TODO perm - let node = DATABASE - .get_node(id)? - .ok_or(anyhow!("node does not exist"))?; +// let mut asset = node.backdrop.clone(); +// if asset.is_none() +// && let Some(parent) = node.parents.last().copied() +// { +// let parent = DATABASE +// .get_node(parent)? +// .ok_or(anyhow!("node does not exist"))?; +// asset = parent.backdrop.clone(); +// }; +// Ok(asset.unwrap_or_else(|| { +// AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()).ser() +// })) +// } +// pub fn get_node_poster(_session: &Session, id: NodeID) -> Result<Asset> { +// // TODO perm +// let node = DATABASE +// .get_node(id)? +// .ok_or(anyhow!("node does not exist"))?; - let mut asset = node.poster.clone(); - if asset.is_none() - && let Some(parent) = node.parents.last().copied() { - let parent = DATABASE - .get_node(parent)? - .ok_or(anyhow!("node does not exist"))?; - asset = parent.poster.clone(); - }; - Ok(asset.unwrap_or_else(|| { - AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()).ser() - })) -} +// let mut asset = node.poster.clone(); +// if asset.is_none() +// && let Some(parent) = node.parents.last().copied() +// { +// let parent = DATABASE +// .get_node(parent)? +// .ok_or(anyhow!("node does not exist"))?; +// asset = parent.poster.clone(); +// }; +// Ok(asset.unwrap_or_else(|| { +// AssetInner::Assets(format!("fallback-{:?}.avif", node.kind).into()).ser() +// })) +// } -pub fn get_node_person_asset( - _session: &Session, - id: NodeID, - group: PeopleGroup, - index: usize, -) -> Result<Asset> { - // TODO perm +// pub fn get_node_person_asset( +// _session: &Session, +// id: NodeID, +// group: PeopleGroup, +// index: usize, +// ) -> Result<Asset> { +// // TODO perm - let node = DATABASE - .get_node(id)? - .ok_or(anyhow!("node does not exist"))?; - let app = node - .credits - .get(&group) - .ok_or(anyhow!("group has no members"))? - .get(index) - .ok_or(anyhow!("person does not exist"))?; +// let node = DATABASE +// .get_node(id)? +// .ok_or(anyhow!("node does not exist"))?; +// let app = node +// .credits +// .get(&group) +// .ok_or(anyhow!("group has no members"))? +// .get(index) +// .ok_or(anyhow!("person does not exist"))?; - let asset = app - .person - .headshot - .to_owned() - .unwrap_or(AssetInner::Assets("fallback-Person.avif".into()).ser()); +// let asset = app +// .person +// .headshot +// .to_owned() +// .unwrap_or(AssetInner::Assets("fallback-Person.avif".into()).ser()); - Ok(asset) -} +// Ok(asset) +// } -pub async fn get_node_thumbnail(_session: &Session, id: NodeID, t: f64) -> Result<Asset> { - let node = DATABASE - .get_node(id)? - .ok_or(anyhow!("node does not exist"))?; +// pub async fn get_node_thumbnail(_session: &Session, id: NodeID, t: f64) -> Result<Asset> { +// let node = DATABASE +// .get_node(id)? +// .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 - .tracks - .iter() - .enumerate() - .find(|(_i, t)| matches!(t.kind, SourceTrackKind::Video { .. })) - .ok_or(anyhow!("no video track to create a thumbnail of"))?; - let source = media - .tracks - .get(thumb_track_index) - .ok_or(anyhow!("no source"))?; - let thumb_track_source = source.source.clone(); +// let media = node.media.as_ref().ok_or(anyhow!("no media"))?; +// let (thumb_track_index, _thumb_track) = media +// .tracks +// .iter() +// .enumerate() +// .find(|(_i, t)| matches!(t.kind, SourceTrackKind::Video { .. })) +// .ok_or(anyhow!("no video track to create a thumbnail of"))?; +// let source = media +// .tracks +// .get(thumb_track_index) +// .ok_or(anyhow!("no source"))?; +// let thumb_track_source = source.source.clone(); - if t < 0. || t > media.duration { - Err(anyhow!("thumbnail instant not within media duration"))? - } +// if t < 0. || t > media.duration { +// Err(anyhow!("thumbnail instant not within media duration"))? +// } - let step = 8.; - let t = (t / step).floor() * step; +// let step = 8.; +// let t = (t / step).floor() * step; - let asset = match thumb_track_source { - TrackSource::Local(a) => { - let AssetInner::LocalTrack(LocalTrack { path, .. }) = AssetInner::deser(&a.0)? else { - return Err(anyhow!("track set to wrong asset type")); - }; - // the track selected might be different from thumb_track - 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?; +// let asset = match thumb_track_source { +// TrackSource::Local(a) => { +// let AssetInner::LocalTrack(LocalTrack { path, .. }) = AssetInner::deser(&a.0)? else { +// return Err(anyhow!("track set to wrong asset type")); +// }; +// // the track selected might be different from thumb_track +// 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?; - // async_cache_file("fed-thumb", (id.0, t as i64), |out| { - // session.node_thumbnail(out, id.0.into(), 2048, t) - // }) - // .await? - todo!() - } - }; +// // async_cache_file("fed-thumb", (id.0, t as i64), |out| { +// // session.node_thumbnail(out, id.0.into(), 2048, t) +// // }) +// // .await? +// todo!() +// } +// }; - Ok(AssetInner::Cache(asset).ser()) -} +// Ok(AssetInner::Cache(asset).ser()) +// } |