aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui/assets.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/ui/assets.rs')
-rw-r--r--server/src/routes/ui/assets.rs31
1 files changed, 12 insertions, 19 deletions
diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs
index bd48f35..a925e31 100644
--- a/server/src/routes/ui/assets.rs
+++ b/server/src/routes/ui/assets.rs
@@ -9,7 +9,7 @@ use base64::Engine;
use jellybase::{
assetfed::AssetInner, cache::async_cache_file, database::Database, federation::Federation, CONF,
};
-use jellycommon::{LocalTrack, PeopleGroup, SourceTrackKind, TrackSource};
+use jellycommon::{LocalTrack, NodeID, PeopleGroup, SourceTrackKind, TrackSource};
use log::info;
use rocket::{get, http::ContentType, response::Redirect, State};
use std::{path::PathBuf, str::FromStr};
@@ -64,13 +64,11 @@ pub async fn resolve_asset(asset: AssetInner) -> anyhow::Result<PathBuf> {
pub async fn r_item_poster(
_session: Session,
db: &State<Database>,
- id: &str,
+ id: NodeID,
width: Option<usize>,
) -> MyResult<Redirect> {
// TODO perm
- let node = db
- .get_node_slug(id)?
- .ok_or(anyhow!("node does not exist"))?;
+ let node = db.get_node(id)?.ok_or(anyhow!("node does not exist"))?;
let mut asset = node.poster.clone();
if asset.is_none() {
@@ -84,17 +82,16 @@ pub async fn r_item_poster(
});
Ok(Redirect::permanent(rocket::uri!(r_asset(asset.0, width))))
}
+
#[get("/n/<id>/backdrop?<width>")]
pub async fn r_item_backdrop(
_session: Session,
db: &State<Database>,
- id: &str,
+ id: NodeID,
width: Option<usize>,
) -> MyResult<Redirect> {
// TODO perm
- let node = db
- .get_node_slug(id)?
- .ok_or(anyhow!("node does not exist"))?;
+ let node = db.get_node(id)?.ok_or(anyhow!("node does not exist"))?;
let mut asset = node.backdrop.clone();
if asset.is_none() {
@@ -113,16 +110,14 @@ pub async fn r_item_backdrop(
pub async fn r_person_asset(
_session: Session,
db: &State<Database>,
- id: &str,
+ id: NodeID,
index: usize,
group: String,
width: Option<usize>,
) -> MyResult<Redirect> {
// TODO perm
- let node = db
- .get_node_slug(id)?
- .ok_or(anyhow!("node does not exist"))?;
+ let node = db.get_node(id)?.ok_or(anyhow!("node does not exist"))?;
let app = node
.people
.get(&PeopleGroup::from_str(&group).map_err(|()| anyhow!("unknown people group"))?)
@@ -146,13 +141,11 @@ pub async fn r_node_thumbnail(
_session: Session,
db: &State<Database>,
fed: &State<Federation>,
- id: &str,
+ id: NodeID,
t: f64,
width: Option<usize>,
) -> MyResult<Redirect> {
- let node = db
- .get_node_slug(id)?
- .ok_or(anyhow!("node does not exist"))?;
+ let node = db.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
@@ -190,8 +183,8 @@ pub async fn r_node_thumbnail(
)
.await?;
- async_cache_file(&["fed-thumb", id, &format!("{t}")], |out| {
- session.node_thumbnail(out, id, 2048, t)
+ async_cache_file(&["fed-thumb", &format!("{id} {t}")], |out| {
+ session.node_thumbnail(out, id.into(), 2048, t)
})
.await?
}