From 34b52b886610856654000271a3db778b2aaf8f72 Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 7 Mar 2025 16:00:41 +0100 Subject: [PATCH 1/9] feat: adds a site for uploading images and generating haikus Refs: OPS-55 --- senju/main.py | 7 +++ senju/templates/base.html | 5 ++ senju/templates/scan.html | 107 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 senju/templates/scan.html diff --git a/senju/main.py b/senju/main.py index 15b232e..9f782a8 100644 --- a/senju/main.py +++ b/senju/main.py @@ -45,3 +45,10 @@ def prompt_view(): "prompt.html", title="Haiku generation" ) + +@app.route("/scan") +def scan_view(): + return render_template( + "scan.html", + title="Image scanning" + ) diff --git a/senju/templates/base.html b/senju/templates/base.html index fa78de1..070a240 100644 --- a/senju/templates/base.html +++ b/senju/templates/base.html @@ -43,6 +43,11 @@ {% if request.endpoint == 'prompt_view' %} bg-gray-900 text-white {% else %} text-gray-300 hover:bg-gray-700 hover:text-white {% endif %}"> Haiku generation + + Image scanning + Information diff --git a/senju/templates/scan.html b/senju/templates/scan.html new file mode 100644 index 0000000..65f7bfd --- /dev/null +++ b/senju/templates/scan.html @@ -0,0 +1,107 @@ +{% extends "base.html" %} + +{% block content %} + + + + + + Image Upload with Preview + + + +
+
+

Upload your image

+ +
+ +
+ + + + + +
+ +
+

Response:

+

Waiting for input...

+
+
+ + + +{% endblock %} + From b739b1d1dce067a809e258d228546700b937d5cd Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 7 Mar 2025 16:24:16 +0100 Subject: [PATCH 2/9] style: Add removal of submit message if no image is submitted yet Refs: OPS-55 --- senju/templates/scan.html | 74 ++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 13 deletions(-) diff --git a/senju/templates/scan.html b/senju/templates/scan.html index 65f7bfd..af939ec 100644 --- a/senju/templates/scan.html +++ b/senju/templates/scan.html @@ -12,8 +12,9 @@
-

Upload your image

- + +

Upload your image

+
From b43d03c35c81292acfd43762ff50f8707c9905e8 Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 7 Mar 2025 17:07:46 +0100 Subject: [PATCH 4/9] feat: add check buttons for the uploaded image before submitting them to generate a Haiku Refs: OPS-55 --- senju/templates/scan.html | 55 ++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/senju/templates/scan.html b/senju/templates/scan.html index daaa150..a051c8b 100644 --- a/senju/templates/scan.html +++ b/senju/templates/scan.html @@ -51,14 +51,29 @@
-

Response:

+

AI recognized the following:

Waiting for input...

- - +
+ + +
+
+ + +
@@ -72,6 +87,9 @@ const responseBox = document.getElementById('response-box'); const submitButton = document.getElementById('submit-button'); const errorMessage = document.getElementById('error-message'); + const yesButton = document.getElementById('yes-button'); + const noButton = document.getElementById('no-button'); + const generatingHaikuBox = document.getElementById('generating-haiku-box'); let imageUploaded = false; @@ -107,6 +125,7 @@ imageUploaded = false; responseBox.classList.add('opacity-0'); + generatingHaikuBox.classList.add('hidden'); setTimeout(() => { document.getElementById('ai-response').textContent = 'Waiting for input...'; }, 500); @@ -121,7 +140,7 @@ responseBox.classList.remove('opacity-0'); // Example response - document.getElementById('ai-response').textContent = 'Generating Haiku from image...'; + document.getElementById('ai-response').textContent = 'Dominic Monaghan interviewing Elijah Wood if he will wear wigs'; } else { errorMessage.classList.remove('hidden'); @@ -132,11 +151,28 @@ }, 600); } } - + + function handleYesClick() { + // Hide response box + responseBox.classList.add('opacity-0'); + + // Show generating haiku box + setTimeout(() => { + responseBox.classList.add('hidden'); + generatingHaikuBox.classList.remove('hidden'); + }, 500); + } + + function handleNoClick() { + // Reset everything + removeImage(); + } dropzoneFile.addEventListener('change', handleFileSelect); removeImageBtn.addEventListener('click', removeImage); submitButton.addEventListener('click', handleSubmit); + yesButton.addEventListener('click', handleYesClick); + noButton.addEventListener('click', handleNoClick); // Add some CSS animation document.head.insertAdjacentHTML('beforeend', ` @@ -158,4 +194,3 @@ {% endblock %} - From 4eef7457647139ca0d8cce151b605b73cc81835b Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 14 Mar 2025 15:11:04 +0100 Subject: [PATCH 5/9] feat: add box to show generated haiku from image OPS-55 --- senju/templates/scan.html | 41 +++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/senju/templates/scan.html b/senju/templates/scan.html index a051c8b..b84a917 100644 --- a/senju/templates/scan.html +++ b/senju/templates/scan.html @@ -75,6 +75,19 @@

Creating a beautiful haiku based on your image...

+