diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-03 16:58:59 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-03 16:58:59 +0100 |
commit | 80343d02e9e29e4bc55d790b491ce0d0c7bff201 (patch) | |
tree | 4a666cd2296ce63c8966e78a78db353eb484457b /server/src/routes/stream.rs | |
parent | 8ee25c9ddd5ba5b6f74f7ec3b212020886e366c1 (diff) | |
download | jellything-80343d02e9e29e4bc55d790b491ce0d0c7bff201.tar jellything-80343d02e9e29e4bc55d790b491ce0d0c7bff201.tar.bz2 jellything-80343d02e9e29e4bc55d790b491ce0d0c7bff201.tar.zst |
a
Diffstat (limited to 'server/src/routes/stream.rs')
-rw-r--r-- | server/src/routes/stream.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/server/src/routes/stream.rs b/server/src/routes/stream.rs index d65b346..4b3d02e 100644 --- a/server/src/routes/stream.rs +++ b/server/src/routes/stream.rs @@ -28,12 +28,13 @@ use std::{ }; use tokio::io::{duplex, DuplexStream}; -#[head("/n/<_id>/stream?<spec>")] +#[head("/n/<_id>/stream?<spec..>")] pub async fn r_stream_head( _sess: Session, _id: &str, - spec: StreamSpec, + spec: BTreeMap<String, String>, ) -> Result<Either<StreamResponse, Redirect>, MyError> { + let spec = StreamSpec::from_query_kv(&spec).map_err(|x| anyhow!("spec invalid: {x}"))?; let head = jellystream::stream_head(&spec); Ok(Either::Left(StreamResponse { stream: duplex(0).0, @@ -52,6 +53,7 @@ pub async fn r_stream( range: Option<RequestRange>, spec: BTreeMap<String, String>, ) -> Result<Either<StreamResponse, RedirectResponse>, MyError> { + let spec = StreamSpec::from_query_kv(&spec).map_err(|x| anyhow!("spec invalid: {x}"))?; // TODO perm let node = db .get_node_slug(id)? @@ -129,7 +131,7 @@ pub async fn r_stream( let head = jellystream::stream_head(&spec); - match jellystream::stream(media, spec, urange, &session.user.permissions).await { + match jellystream::stream(media, spec, urange).await { Ok(stream) => Ok(Either::Left(StreamResponse { stream, range, |