From 7ca91b6f33bb260bc966e853c832b4339c1c2ae0 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 12 Jan 2023 22:05:32 +0100 Subject: implementing my own ebml library --- server/src/main.rs | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'server/src') diff --git a/server/src/main.rs b/server/src/main.rs index 2fc6406..6243b3f 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,24 +1,15 @@ #![feature(box_syntax)] use crate::frontend::{pages::MyError, style::CSS_BUNDLE}; -use anyhow::anyhow; +use anyhow::{anyhow, Context}; use database::Database; use frontend::pages::{home::page_home, node::page_library_node}; -use jellyremuxer::{RemuxerContext, SendWriter}; +use jellyremuxer::RemuxerContext; use library::Library; use log::{debug, warn}; -use rocket::{ - get, - http::ContentType, - launch, - response::stream::{ByteStream, ReaderStream}, - routes, State, -}; -use std::{fs::read_to_string, sync::Arc}; -use tokio::{ - io::{duplex, DuplexStream}, - sync::mpsc, -}; +use rocket::{get, http::ContentType, launch, response::stream::ReaderStream, routes, State}; +use std::{fs::read_to_string, path::PathBuf, sync::Arc}; +use tokio::io::{duplex, DuplexStream}; use tokio_util::io::SyncIoBridge; pub mod database; @@ -37,13 +28,19 @@ async fn assets_style() -> (ContentType, String) { ) } -#[get("/stream?")] +#[get("/stream/?")] fn stream( + path: PathBuf, selection: String, state: &State, ) -> Result<(ContentType, ReaderStream![DuplexStream]), MyError> { - let (a, b) = duplex(8196); - let item = state.library.nested("mili-bento-box-bivouac")?.get_item()?; + let (a, b) = duplex(1024); + let path = path.to_str().unwrap().to_string(); + let item = state + .library + .nested(&path) + .context("retrieving library node")? + .get_item()?; let remuxer = state.remuxer.clone(); let selection = selection .split(",") @@ -55,6 +52,7 @@ fn stream( tokio::task::spawn_blocking(move || { if let Err(e) = remuxer.generate_into( b, + offset, item.fs_path.parent().unwrap().to_path_buf(), item.data.clone(), selection, -- cgit v1.2.3-70-g09d2