diff options
Diffstat (limited to 'server/src/routes/stream.rs')
-rw-r--r-- | server/src/routes/stream.rs | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/server/src/routes/stream.rs b/server/src/routes/stream.rs index d057aa7..401faba 100644 --- a/server/src/routes/stream.rs +++ b/server/src/routes/stream.rs @@ -4,14 +4,9 @@ Copyright (C) 2025 metamuffin <metamuffin.org> */ use super::ui::{account::session::Session, error::MyError}; -use crate::database::DataAcid; +use crate::database::Database; use anyhow::{anyhow, Result}; -use jellybase::{ - database::{TableExt, T_NODE}, - federation::Federation, - permission::{NodePermissionExt, PermissionSetExt}, - SECRETS, -}; +use jellybase::{federation::Federation, permission::PermissionSetExt, SECRETS}; use jellycommon::{ config::FederationAccount, stream::StreamSpec, @@ -48,15 +43,16 @@ pub async fn r_stream_head( pub async fn r_stream( session: Session, federation: &State<Federation>, - db: &State<DataAcid>, + db: &State<Database>, id: &str, range: Option<RequestRange>, spec: StreamSpec, ) -> Result<Either<StreamResponse, RedirectResponse>, MyError> { - let node = T_NODE - .get(db, id)? - .only_if_permitted(&session.user.permissions) + // TODO perm + let node = db + .get_node_slug(id)? .ok_or(anyhow!("node does not exist"))?; + let media = node .media .as_ref() @@ -71,7 +67,7 @@ pub async fn r_stream( .permissions .assert(&UserPermission::FederatedContent)?; - let track = &node.media.ok_or(anyhow!("no media"))?.tracks[ti]; + let track = &node.media.as_ref().ok_or(anyhow!("no media"))?.tracks[ti]; let host = track .federated .last() |