From a89ad5cba927017d60b37213f002d937632012ba Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 21 Mar 2025 15:06:26 +0100 Subject: [PATCH 1/6] feat: Add a maximum input length fo the prompt Refs: OPS-54 --- senju/templates/prompt.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/senju/templates/prompt.html b/senju/templates/prompt.html index 218809d..a72c12f 100644 --- a/senju/templates/prompt.html +++ b/senju/templates/prompt.html @@ -8,6 +8,8 @@ From 8223437f9ea4009f85be6c9da65180f40ea3297e Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 21 Mar 2025 15:23:02 +0100 Subject: [PATCH 2/6] feat: increase input length and enforce length in js as well as backend Refs: OPS-54 --- senju/main.py | 3 +++ senju/templates/prompt.html | 25 +++++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/senju/main.py b/senju/main.py index 663a7c5..98ef2d8 100644 --- a/senju/main.py +++ b/senju/main.py @@ -1,5 +1,6 @@ from __future__ import annotations +from logging import raiseExceptions from pathlib import Path from flask import (Flask, redirect, render_template, request, url_for, @@ -74,6 +75,8 @@ def generate_haiku(): if request.method == 'POST': json_data = request.get_json() prompt = json_data["prompt"] + if len(prompt)>100: + return "Unprocessable Entity", 422 haiku = Haiku.request_haiku(prompt) id = store.save_haiku(haiku) return str(id) diff --git a/senju/templates/prompt.html b/senju/templates/prompt.html index a72c12f..2721a4a 100644 --- a/senju/templates/prompt.html +++ b/senju/templates/prompt.html @@ -9,7 +9,7 @@ type="text" id="user-input" minlength="0" - maxlength="25" + maxlength="100" placeholder="Type your prompt here..." class="w-full px-4 py-3 text-lg border-2 border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-violet-600" /> @@ -34,42 +34,43 @@ document.getElementById("submit-btn").addEventListener("click", function() { let responseBox = document.getElementById("response-box"); let responseText = document.getElementById("ai-response"); + // Hide the response box initially + responseBox.classList.add("opacity-0"); + if (userInput.trim() === "") { responseText.textContent = "Please enter a prompt!"; + } + else if (userInput.length !== 5) { + responseText.textContent = "Input must be exactly 5 characters long!"; } - else if (userInput.trim()==="amogus"){ + else if (userInput.trim() === "amogus") { responseText.textContent = "🤖 AI is thinking..."; responseBox.classList.remove("opacity-0"); // Simulated AI response delay setTimeout(() => { - responseText.textContent = `Sus imposter āļž`; + responseText.textContent = "Sus imposter āļž"; }, 1500); - } + } else { responseText.textContent = "🤖 AI is thinking..."; responseBox.classList.remove("opacity-0"); - console.log(userInput ); - fetch('/api/v1/haiku', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({'prompt': userInput}) + body: JSON.stringify({ 'prompt': userInput }) }) .then(response => response.text()) .then(data => { - console.log(data); let id = parseInt(data, 10); - window.location.href = "/haiku/"+id; + window.location.href = "/haiku/" + id; }) .catch(error => { - document.getElementById('result').innerHTML = 'Error: ' + error.message; + responseText.textContent = 'Error: ' + error.message; }); - } }); - {% endblock %} From 1ca1bc525b882f29a8507f0c7a2b769c72cb600f Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 21 Mar 2025 15:26:30 +0100 Subject: [PATCH 3/6] fix: remove unnecessary import Refs: OPS-54 --- senju/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/senju/main.py b/senju/main.py index 98ef2d8..b253183 100644 --- a/senju/main.py +++ b/senju/main.py @@ -1,6 +1,5 @@ from __future__ import annotations -from logging import raiseExceptions from pathlib import Path from flask import (Flask, redirect, render_template, request, url_for, From 36c3d0a83fb8fe924492204d97528d6292ced672 Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 21 Mar 2025 15:31:51 +0100 Subject: [PATCH 4/6] fix: changed html error code to the correct one Refs: OPS-54 --- senju/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/senju/main.py b/senju/main.py index b253183..b35fbee 100644 --- a/senju/main.py +++ b/senju/main.py @@ -75,7 +75,7 @@ def generate_haiku(): json_data = request.get_json() prompt = json_data["prompt"] if len(prompt)>100: - return "Unprocessable Entity", 422 + return "Content Too Large", 413 haiku = Haiku.request_haiku(prompt) id = store.save_haiku(haiku) return str(id) From c705e863d144d6f9a7ed5cdccb0d536d56490ed0 Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 21 Mar 2025 15:56:08 +0100 Subject: [PATCH 5/6] fix: fix js to limit user input Reps: OPS-54 --- senju/templates/prompt.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/senju/templates/prompt.html b/senju/templates/prompt.html index 2721a4a..3ce5170 100644 --- a/senju/templates/prompt.html +++ b/senju/templates/prompt.html @@ -40,8 +40,8 @@ document.getElementById("submit-btn").addEventListener("click", function() { if (userInput.trim() === "") { responseText.textContent = "Please enter a prompt!"; } - else if (userInput.length !== 5) { - responseText.textContent = "Input must be exactly 5 characters long!"; + else if (userInput.length > 100) { + responseText.textContent = "Input must under 100 characters long!"; } else if (userInput.trim() === "amogus") { responseText.textContent = "🤖 AI is thinking..."; From 740358ae72498af6a7183d6974e7449ddc292d65 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 14:56:43 +0000 Subject: [PATCH 6/6] ci: automatic Python Formatter changes --- senju/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/senju/main.py b/senju/main.py index b35fbee..1bdfd27 100644 --- a/senju/main.py +++ b/senju/main.py @@ -74,7 +74,7 @@ def generate_haiku(): if request.method == 'POST': json_data = request.get_json() prompt = json_data["prompt"] - if len(prompt)>100: + if len(prompt) > 100: return "Content Too Large", 413 haiku = Haiku.request_haiku(prompt) id = store.save_haiku(haiku)