From b8bc7cc5f814dc396acd1a3bcf28cd177e21b1b8 Mon Sep 17 00:00:00 2001 From: jenstandstad Date: Wed, 13 May 2026 07:50:33 +0200 Subject: [PATCH] Adding file upload fix --- backend/src/lib/minio.js | 5 ++++- backend/src/routes/ingest.js | 6 +++--- future.md | 39 ++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 future.md diff --git a/backend/src/lib/minio.js b/backend/src/lib/minio.js index 2874235..0b182ab 100644 --- a/backend/src/lib/minio.js +++ b/backend/src/lib/minio.js @@ -13,7 +13,10 @@ const client = new S3Client({ accessKeyId: process.env.MINIO_ROOT_USER || 'minioadmin', secretAccessKey: process.env.MINIO_ROOT_PASSWORD || 'minioadmin', }, - forcePathStyle: true, // required for MinIO + forcePathStyle: true, // required for MinIO, + requestChecksumCalculation: 'WHEN_REQUIRED', // ← don't add checksums automatically + responseChecksumValidation: 'WHEN_REQUIRED', // ← don't validate on response either + }); export function publicUrl(objectKey) { diff --git a/backend/src/routes/ingest.js b/backend/src/routes/ingest.js index 41f9f6e..0018415 100644 --- a/backend/src/routes/ingest.js +++ b/backend/src/routes/ingest.js @@ -90,14 +90,14 @@ router.post('/', requireIngestKey, async (req, res) => { project.fps ?? null, project.defaultSlideType ?? project.default_slide_type ?? null, project.background ?? null, - project.platform_targets ?? null, + project.platform_targets != null ? JSON.stringify(project.platform_targets) : null, project.duration_seconds ?? null, project.youtube_url ?? null, project.output_video ?? null, project.keynote_file ?? null, project.parent_project ?? null, - project.outro ?? null, - project.shorts ?? null, + project.outro != null ? JSON.stringify(project.outro) : null, + project.shorts != null ? JSON.stringify(project.shorts) : null, project.manuscript ?? null, JSON.stringify(project), ] diff --git a/future.md b/future.md new file mode 100644 index 0000000..35f6537 --- /dev/null +++ b/future.md @@ -0,0 +1,39 @@ +# The future of GnommoEditor as I envision it + +The point of GnommoeEditor is to create a presentation as a text document. +The text document might contain prompts for the visualization of each slide. + +# Workflow +Write script with slide markers annoated as S1, S2 etc. + +Slide instructions can be written in the manuscript as : If they are, then they are imported into the system as follows. +[slide: +{ + "type" : "GlitchComponent", + "id" : "VideoXGaussian", + "slideType": "square", + "transition": { + "just_gaussian" : "0s", + "with_median": "8s", + "with_area": "12s", + "with_variance" :"18s", + "with_squared_std": "30s", + "aligns_with_mean": "40s", + }, + "prompt": "Creata GlitchComponent following the styleGuide. The purpose of the Component is to show the Gaussian distribution. The first page named just_gaussian draws up two axes and draws the bell shape. The second page named with_median adds a line at the median and the mean, and the third page "with_area" fills the area under the curve. The fourth page is the capstone, and it's a a visual illustration of how the square of the stanard deviance is equal to the mean. To show this, instead of starting with the std dev, we start with a cursor that displays the height under the line at various position. Animate the cursor going back and forth, and then visualize the value in a textbox." + +} +] + +# Triggerin the creation of a glitch component +When a user looks at a slide, it can trigger the generation of a GlithComponent slide by a special button. +Each slide is a separate repo built and vite. + + +# Slide types +There are two kinds of slides. Full screen (16:9) and square (1:1). + + +# Device orientation +Full screen slides should be used sparingly, or be components that can handle +portrait mode. For example, a component with two \ No newline at end of file