From 01db49d71da614aacd259ce0988e3e3830dca42f Mon Sep 17 00:00:00 2001 From: DevFlock <37045958+DevFlock@users.noreply.github.com> Date: Sun, 10 Sep 2023 16:55:29 +0100 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9B=20Keep=20the=20out=20panel=20a?= =?UTF-8?q?lways=20visible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/app.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/frontend/app.js b/src/frontend/app.js index 273a18c..058a727 100644 --- a/src/frontend/app.js +++ b/src/frontend/app.js @@ -97,21 +97,18 @@ for (let i = 0; i < nav_items.length; i++) { fourier_btn.addEventListener("click", e => { // Needs both input and output panel - output_panel.hidden = false module = "fourier" get_inputs() }) steg_btn.addEventListener("click", e => { // Only needs input - output_panel.hidden = false module = "steg" get_inputs() }) datastamp_btn.addEventListener("click", e => { // Only needs input - output_panel.hidden = true module = "datastamp" get_inputs() }) From 811a28108159f8e56ac5bd8cb20b4b698401bc69 Mon Sep 17 00:00:00 2001 From: DevFlock <37045958+DevFlock@users.noreply.github.com> Date: Sun, 10 Sep 2023 17:17:20 +0100 Subject: [PATCH 2/2] Image not required --- src/backend/main.py | 10 ++++++---- src/frontend/app.html | 2 +- src/frontend/app.js | 7 ++++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/backend/main.py b/src/backend/main.py index 9a57292..13a4515 100644 --- a/src/backend/main.py +++ b/src/backend/main.py @@ -1,6 +1,6 @@ import json from io import BytesIO -from typing import Annotated +from typing import Annotated, Union import requests from dotenv import dotenv_values, find_dotenv @@ -92,11 +92,13 @@ async def components(module: str = "fourier", encode: bool = False): @app.post("/process") async def process_image( - image: Annotated[UploadFile, Form()], data: Annotated[str, Form()] + data: Annotated[str, Form()] = None, + image: Annotated[Union[None, UploadFile], Form()] = None, ): """Process the image with the defined options""" data = json.loads(data) - img_bytes = BytesIO(await image.read()) + if image is not None: + img_bytes = BytesIO(await image.read()) # PIL.Image.open(img_bytes) to open as pillow image match data["module"]: @@ -109,8 +111,8 @@ async def process_image( case "steg": pass - return Response(img_bytes.read(), media_type="image/png") return "Text example" + return Response(img_bytes.read(), media_type="image/png") # Make sure this is always at the bottom diff --git a/src/frontend/app.html b/src/frontend/app.html index 5111cc6..bf3d0dc 100644 --- a/src/frontend/app.html +++ b/src/frontend/app.html @@ -39,7 +39,7 @@

Emerging Exceptions

-
+
diff --git a/src/frontend/app.js b/src/frontend/app.js index 058a727..1f6012d 100644 --- a/src/frontend/app.js +++ b/src/frontend/app.js @@ -95,20 +95,25 @@ for (let i = 0; i < nav_items.length; i++) { }) } +const input_panel = document.getElementById("input_panel") + fourier_btn.addEventListener("click", e => { // Needs both input and output panel + input_panel.hidden = false module = "fourier" get_inputs() }) steg_btn.addEventListener("click", e => { // Only needs input + input_panel.hidden = false module = "steg" get_inputs() }) datastamp_btn.addEventListener("click", e => { // Only needs input + input_panel.hidden = true module = "datastamp" get_inputs() }) @@ -181,7 +186,7 @@ const submit_btn = document.getElementById("submit") submit_btn.addEventListener("click", e => { let data = new FormData() - data.append("image", file) + if (file != null) {data.append("image", file)} data.append("data", JSON.stringify({ "module": module, "is_encode": encode,