From 8e33fcdfbd9df042c0cfd8e9a2084993313961c9 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 2 Aug 2023 23:07:55 +0200 Subject: federated import works but relies on private data --- server/src/routes/stream.rs | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) (limited to 'server/src/routes/stream.rs') diff --git a/server/src/routes/stream.rs b/server/src/routes/stream.rs index 1277646..ee7880c 100644 --- a/server/src/routes/stream.rs +++ b/server/src/routes/stream.rs @@ -4,7 +4,7 @@ Copyright (C) 2023 metamuffin */ use super::ui::{account::session::Session, error::MyError}; -use crate::{database::Database, CONF}; +use crate::{database::Database, federation::Federation, CONF}; use anyhow::{anyhow, Result}; use jellycommon::MediaSource; use jellyremuxer::RemuxerContext; @@ -30,6 +30,7 @@ pub async fn r_stream( webm: Option, tracks: String, remuxer: &State, + federation: &State, db: &State, range: Option, ) -> Result, MyError> { @@ -47,27 +48,21 @@ pub async fn r_stream( let source_tracks = match source { MediaSource::Local { tracks } => tracks, MediaSource::Remote { host, remote_id } => { - let (username, password, tls) = CONF + let (username, password, _) = CONF .remote_credentials .get(&host) .ok_or(anyhow!("no credentials on the server-side"))?; - let instance = jellyclient::Instance { host, tls: *tls }; - let session = jellyclient::login( - &instance, - username.to_owned(), - password.to_owned(), - Duration::from_secs(60), - ) - .await?; + let instance = federation.get_instance(&host)?.to_owned(); + let session = instance + .login( + username.to_owned(), + password.to_owned(), + Duration::from_secs(60), + ) + .await?; - let uri = jellyclient::stream( - &instance, - &session, - &remote_id, - &tracks, - webm.unwrap_or(false), - ); + let uri = session.stream(&remote_id, &tracks, webm.unwrap_or(false)); return Ok(Either::Right(Redirect::found(uri))); } }; -- cgit v1.2.3-70-g09d2