diff options
author | metamuffin <metamuffin@disroot.org> | 2024-01-24 21:49:51 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-01-24 21:49:51 +0100 |
commit | dcd6b024c6874c17e739ad62f80eb3e212ec5e91 (patch) | |
tree | cfd96059df204e305e4faaf3948700db51be539c | |
parent | 5f46a8177814f0694aeab818486fd545cd02e94a (diff) | |
download | jellything-dcd6b024c6874c17e739ad62f80eb3e212ec5e91.tar jellything-dcd6b024c6874c17e739ad62f80eb3e212ec5e91.tar.bz2 jellything-dcd6b024c6874c17e739ad62f80eb3e212ec5e91.tar.zst |
readd override poster support
-rw-r--r-- | common/src/lib.rs | 3 | ||||
-rw-r--r-- | import/src/lib.rs | 14 | ||||
-rw-r--r-- | server/src/routes/ui/assets.rs | 1 |
3 files changed, 17 insertions, 1 deletions
diff --git a/common/src/lib.rs b/common/src/lib.rs index 8904a66..56d0d2e 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -32,6 +32,9 @@ pub struct Node { pub struct NodePrivate { #[serde(default)] pub id: Option<String>, #[serde(default)] pub source: Option<Vec<TrackSource>>, + + #[serde(default)] pub poster: Option<PathBuf>, + #[serde(default)] pub backdrop: Option<PathBuf>, } #[rustfmt::skip] diff --git a/import/src/lib.rs b/import/src/lib.rs index 9a099a8..1c04437 100644 --- a/import/src/lib.rs +++ b/import/src/lib.rs @@ -286,7 +286,15 @@ async fn process_source( Ok(()) }; match s { - ImportSource::Override(n) => insert_node(&id, n)?, + ImportSource::Override(mut n) => { + if let Some(backdrop) = n.private.backdrop.clone() { + n.public.backdrop = Some(AssetInner::Assets(backdrop).ser()); + } + if let Some(poster) = n.private.poster.clone() { + n.public.poster = Some(AssetInner::Assets(poster).ser()); + } + insert_node(&id, n)? + } ImportSource::Trakt { id: tid, kind } => { info!("trakt {id}"); let trakt = ap @@ -641,6 +649,8 @@ fn merge_node(x: Node, y: Node) -> anyhow::Result<Node> { private: NodePrivate { id: x.private.id.or(y.private.id), source, + backdrop: None, + poster: None, }, }) } @@ -763,6 +773,8 @@ async fn import_remote( let mut node = Node { public: node.clone(), private: NodePrivate { + backdrop: None, + poster: None, id: None, source: track_sources, }, diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs index 36d6ee3..ef73fcc 100644 --- a/server/src/routes/ui/assets.rs +++ b/server/src/routes/ui/assets.rs @@ -33,6 +33,7 @@ pub async fn r_asset( // fit the resolution into a finite set so the maximum cache is finite too. let width = 2usize.pow(width.unwrap_or(2048).clamp(128, 2048).ilog2()); + // TODO configure avif quality and speed. let path = jellytranscoder::image::transcode(source, 50., 5, width) .await .context("transcoding asset")?; |