aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-24 21:49:51 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-24 21:49:51 +0100
commitdcd6b024c6874c17e739ad62f80eb3e212ec5e91 (patch)
treecfd96059df204e305e4faaf3948700db51be539c
parent5f46a8177814f0694aeab818486fd545cd02e94a (diff)
downloadjellything-dcd6b024c6874c17e739ad62f80eb3e212ec5e91.tar
jellything-dcd6b024c6874c17e739ad62f80eb3e212ec5e91.tar.bz2
jellything-dcd6b024c6874c17e739ad62f80eb3e212ec5e91.tar.zst
readd override poster support
-rw-r--r--common/src/lib.rs3
-rw-r--r--import/src/lib.rs14
-rw-r--r--server/src/routes/ui/assets.rs1
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")?;