aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/stream.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/stream.rs')
-rw-r--r--server/src/routes/stream.rs20
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()