From dab09c4e4d1e4b21216b630bb44e57f597dfe85b Mon Sep 17 00:00:00 2001 From: WriterV2 Date: Tue, 5 Nov 2024 16:33:19 +0100 Subject: Feat: auto file (pdf + epub) creation and synchronization for story --- src/handlers/admin.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/handlers') diff --git a/src/handlers/admin.rs b/src/handlers/admin.rs index af7aa42..6cfe133 100644 --- a/src/handlers/admin.rs +++ b/src/handlers/admin.rs @@ -1,4 +1,5 @@ use std::collections::HashMap; +use std::io::{BufWriter, Write}; use anyhow::Context; use axum::body::Bytes; @@ -94,12 +95,22 @@ pub async fn upload_story( }; let pdf = if let Some(pdf_value) = form.get("pdf") { + let mut filename = format!("{}.pdf", name).to_lowercase(); + filename.retain(|c| !c.is_whitespace()); + + let file = std::fs::File::create_new(format!("static/{}", filename))?; + BufWriter::new(file).write_all(pdf_value)?; pdf_value.to_vec() } else { return Ok(StatusCode::BAD_REQUEST.into_response()); }; let epub = if let Some(epub_value) = form.get("epub") { + let mut filename = format!("{}.epub", name).to_lowercase(); + filename.retain(|c| !c.is_whitespace()); + + let file = std::fs::File::create_new(format!("static/{}", filename))?; + BufWriter::new(file).write_all(epub_value)?; epub_value.to_vec() } else { return Ok(StatusCode::BAD_REQUEST.into_response()); -- cgit v1.2.3