diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/import.rs | 12 | ||||
-rw-r--r-- | server/src/routes/ui/assets.rs | 11 |
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, |