From 8223437f9ea4009f85be6c9da65180f40ea3297e Mon Sep 17 00:00:00 2001 From: 0xjrx Date: Fri, 21 Mar 2025 15:23:02 +0100 Subject: [PATCH] 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 %}