aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/stream.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-29 18:03:06 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-29 18:03:06 +0100
commitdb511d3fe50f05329615f718515fab1b80d9e06a (patch)
tree7969fea01be100cbe4385ad13a14940a987ac513 /server/src/routes/stream.rs
parent82e8a55a1496ae9132e13e7286fe1c0d57d586d3 (diff)
downloadjellything-db511d3fe50f05329615f718515fab1b80d9e06a.tar
jellything-db511d3fe50f05329615f718515fab1b80d9e06a.tar.bz2
jellything-db511d3fe50f05329615f718515fab1b80d9e06a.tar.zst
no direct redb access
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()