aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/src/import.rs12
-rw-r--r--server/src/routes/ui/assets.rs11
2 files changed, 9 insertions, 14 deletions
diff --git a/server/src/import.rs b/server/src/import.rs
index 55d1a32..dc32fbf 100644
--- a/server/src/import.rs
+++ b/server/src/import.rs
@@ -9,7 +9,7 @@ use async_recursion::async_recursion;
use futures::{stream::FuturesUnordered, StreamExt, TryFutureExt};
use jellybase::cache::async_cache_file;
use jellyclient::Session;
-use jellycommon::{AssetLocation, MediaSource, Node, NodePrivate, RemoteImportOptions};
+use jellycommon::{AssetLocation, AssetRole, MediaSource, Node, NodePrivate, RemoteImportOptions};
use log::{debug, error, info};
use std::{
ffi::OsStr,
@@ -167,8 +167,10 @@ async fn import_remote(
return Ok(vec![]); // node is federated from us, lets not import it
}
- let poster = cache_federation_asset(session.to_owned(), opts.id.clone(), "poster").await?;
- let backdrop = cache_federation_asset(session.to_owned(), opts.id.clone(), "backdrop").await?;
+ let poster =
+ cache_federation_asset(session.to_owned(), opts.id.clone(), AssetRole::Poster).await?;
+ let backdrop =
+ cache_federation_asset(session.to_owned(), opts.id.clone(), AssetRole::Backdrop).await?;
drop(_permit);
@@ -237,10 +239,10 @@ async fn import_remote(
async fn cache_federation_asset(
session: Arc<Session>,
identifier: String,
- role: &'static str,
+ role: AssetRole,
) -> anyhow::Result<AssetLocation> {
async_cache_file(
- &["federation-asset", role, &identifier.clone()],
+ &["federation-asset", role.as_str(), &identifier.clone()],
move |out| async move {
let session = session;
session
diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs
index 48c569a..f00c416 100644
--- a/server/src/routes/ui/assets.rs
+++ b/server/src/routes/ui/assets.rs
@@ -10,19 +10,12 @@ use crate::{
use anyhow::{anyhow, Context};
use jellybase::{permission::NodePermissionExt, AssetLocationExt};
use jellycommon::AssetLocation;
+pub use jellycommon::AssetRole;
use log::info;
-use rocket::{get, http::ContentType, FromFormField, State, UriDisplayQuery};
+use rocket::{get, http::ContentType, State};
use std::{path::PathBuf, str::FromStr};
use tokio::fs::File;
-#[derive(FromFormField, UriDisplayQuery)]
-pub enum AssetRole {
- #[field(value = "poster")]
- Poster,
- #[field(value = "backdrop")]
- Backdrop,
-}
-
#[get("/n/<id>/asset?<role>&<width>")]
pub async fn r_item_assets(
session: Session,