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