diff options
author | metamuffin <metamuffin@disroot.org> | 2025-09-26 14:35:23 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-09-26 14:35:23 +0200 |
commit | f7e3841426ed4661ede6ccfff9c306141735d465 (patch) | |
tree | 793727cc80386bc1715869a3f54986e42897e656 /server | |
parent | 81bb9dee3ed8a029bec831e7c3f204cd0ed41472 (diff) | |
download | jellything-f7e3841426ed4661ede6ccfff9c306141735d465.tar jellything-f7e3841426ed4661ede6ccfff9c306141735d465.tar.bz2 jellything-f7e3841426ed4661ede6ccfff9c306141735d465.tar.zst |
Diffstat (limited to 'server')
-rw-r--r-- | server/src/logic/stream.rs | 13 | ||||
-rw-r--r-- | server/src/ui/error.rs | 9 |
2 files changed, 15 insertions, 7 deletions
diff --git a/server/src/logic/stream.rs b/server/src/logic/stream.rs index dfe2f86..d239c92 100644 --- a/server/src/logic/stream.rs +++ b/server/src/logic/stream.rs @@ -9,7 +9,7 @@ use jellycommon::{api::NodeFilterSort, stream::StreamSpec, NodeID, TrackSource}; use jellyimport::asset_token::AssetInner; use jellylogic::{node::get_node, session::Session}; use jellystream::SMediaInfo; -use log::info; +use log::{info, warn}; use rocket::{ get, head, http::{Header, Status}, @@ -148,9 +148,16 @@ pub async fn r_stream( }); // TODO cleaner solution needed - let mut reader = spawn_blocking(move || jellystream::stream(media, spec, urange)) + let mut reader = match spawn_blocking(move || jellystream::stream(media, spec, urange)) .await - .unwrap()?; + .unwrap() + { + Ok(o) => o, + Err(e) => { + warn!("stream error: {e:?}"); + Err(e)? + } + }; let (stream_write, stream_read) = duplex(4096); spawn_blocking(move || std::io::copy(&mut reader, &mut SyncIoBridge::new(stream_write))); diff --git a/server/src/ui/error.rs b/server/src/ui/error.rs index 6fc3284..f1c9d3a 100644 --- a/server/src/ui/error.rs +++ b/server/src/ui/error.rs @@ -26,10 +26,11 @@ static ERROR_IMAGE: LazyLock<Vec<u8>> = LazyLock::new(|| { #[catch(default)] pub fn r_catch<'a>(status: Status, _request: &Request) -> RawHtml<String> { + catch_with_message(format!("{status}")) +} +fn catch_with_message(message: String) -> RawHtml<String> { RawHtml(render_page( - &ErrorPage { - status: format!("{status}"), - }, + &ErrorPage { status: message }, RenderInfo { importing: false, session: None, @@ -56,7 +57,7 @@ impl<'r> Responder<'r, 'static> for MyError { Some(x) if x.is_avif() || x.is_png() || x.is_jpeg() => { (ContentType::AVIF, ERROR_IMAGE.as_slice()).respond_to(req) } - _ => r_catch(Status::InternalServerError, req).respond_to(req), + _ => catch_with_message(format!("{:#}", self.0)).respond_to(req), } } } |