aboutsummaryrefslogtreecommitdiff
path: root/server/src/logic/stream.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-26 18:24:16 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-26 18:24:16 +0200
commit3b15caade07e8fbe351fed9aceb3f435bf58368e (patch)
treecce91c229b78061ad36f29d76a76d67c3c737c59 /server/src/logic/stream.rs
parent1eeff5c03e8985d16d4f2b6283741dd82b369bd3 (diff)
downloadjellything-3b15caade07e8fbe351fed9aceb3f435bf58368e.tar
jellything-3b15caade07e8fbe351fed9aceb3f435bf58368e.tar.bz2
jellything-3b15caade07e8fbe351fed9aceb3f435bf58368e.tar.zst
move all direct database access to logic crate
Diffstat (limited to 'server/src/logic/stream.rs')
-rw-r--r--server/src/logic/stream.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/server/src/logic/stream.rs b/server/src/logic/stream.rs
index c21edaa..1e518e2 100644
--- a/server/src/logic/stream.rs
+++ b/server/src/logic/stream.rs
@@ -5,9 +5,9 @@
*/
use crate::{helper::A, ui::error::MyError};
use anyhow::{anyhow, Result};
-use jellycommon::{stream::StreamSpec, TrackSource};
+use jellycommon::{api::NodeFilterSort, stream::StreamSpec, NodeID, TrackSource};
use jellyimport::asset_token::AssetInner;
-use jellylogic::{session::Session, Database};
+use jellylogic::{node::get_node, session::Session};
use jellystream::SMediaInfo;
use log::{info, warn};
use rocket::{
@@ -15,7 +15,7 @@ use rocket::{
http::{Header, Status},
request::{self, FromRequest},
response::{self, Redirect, Responder},
- Either, Request, Response, State,
+ Either, Request, Response,
};
use std::{
collections::{BTreeMap, BTreeSet},
@@ -42,17 +42,21 @@ pub async fn r_stream_head(
#[get("/n/<id>/stream?<spec..>")]
pub async fn r_stream(
- _session: A<Session>,
- db: &State<Database>,
+ session: A<Session>,
id: &str,
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)?
- .ok_or(anyhow!("node does not exist"))?;
+ let node = get_node(
+ &session.0,
+ NodeID::from_slug(id),
+ false,
+ false,
+ NodeFilterSort::default(),
+ )?
+ .node;
let media = Arc::new(
node.media