From d8f69631b52f649098b9101e7955021548440f82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=B6rdle=20Bot?= Date: Fri, 5 Dec 2025 10:55:18 +0100 Subject: [PATCH] =?UTF-8?q?Fix:=20AI-Nachrichtenverarbeitung=20-=20Nur=20b?= =?UTF-8?q?ei=20ge=C3=A4nderten=20Nachrichten=20anzeigen,=20Checkbox=20f?= =?UTF-8?q?=C3=BCr=20Einverst=C3=A4ndnis=20hinzuf=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/rewrite-message/route.ts | 19 +++++++++++-- components/Game.tsx | 49 +++++++++++++++++++++++--------- messages/de.json | 2 ++ messages/en.json | 2 ++ 4 files changed, 55 insertions(+), 17 deletions(-) diff --git a/app/api/rewrite-message/route.ts b/app/api/rewrite-message/route.ts index 20df835..a264919 100644 --- a/app/api/rewrite-message/route.ts +++ b/app/api/rewrite-message/route.ts @@ -61,10 +61,23 @@ Message: "${message}"`; const data = await response.json(); let rewrittenMessage = data.choices?.[0]?.message?.content?.trim() || message; - // Only add suffix if message was actually changed + // Remove any explanatory comments in parentheses that the AI might add + // e.g., "(This message is a friendly, positive comment expressing appreciation. No rewriting is necessary.)" + rewrittenMessage = rewrittenMessage.replace(/\s*\([^)]*\)\s*/g, '').trim(); + + // Compare with original message (case-insensitive and ignoring extra whitespace) const originalTrimmed = message.trim(); - if (rewrittenMessage !== originalTrimmed) { - rewrittenMessage += " (autocorrected by Polite-Bot)"; + const rewrittenTrimmed = rewrittenMessage.trim(); + + // Check if message was actually changed (normalize for comparison) + const wasChanged = rewrittenTrimmed.toLowerCase() !== originalTrimmed.toLowerCase() && + rewrittenTrimmed !== originalTrimmed; + + if (wasChanged) { + rewrittenMessage = rewrittenTrimmed + " (autocorrected by Polite-Bot)"; + } else { + // Return original message if not changed + rewrittenMessage = originalTrimmed; } return NextResponse.json({ rewrittenMessage }); diff --git a/components/Game.tsx b/components/Game.tsx index 5491b8e..fb8c6a6 100644 --- a/components/Game.tsx +++ b/components/Game.tsx @@ -67,6 +67,7 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max const [commentError, setCommentError] = useState(null); const [commentCollapsed, setCommentCollapsed] = useState(true); const [rewrittenMessage, setRewrittenMessage] = useState(null); + const [commentAIConsent, setCommentAIConsent] = useState(false); useEffect(() => { const updateCountdown = () => { @@ -317,7 +318,7 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max }; const handleCommentSubmit = async () => { - if (!commentText.trim() || commentSending || commentSent || !dailyPuzzle) { + if (!commentText.trim() || commentSending || commentSent || !dailyPuzzle || !commentAIConsent) { return; } @@ -343,8 +344,10 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max const rewriteData = await rewriteResponse.json(); if (rewriteData.rewrittenMessage) { finalMessage = rewriteData.rewrittenMessage; - // If message was changed significantly (simple check), show it - if (finalMessage !== commentText.trim()) { + // Only show rewritten message if it was actually changed + // The API adds "(autocorrected by Polite-Bot)" suffix only if message was changed + const wasChanged = finalMessage.includes('(autocorrected by Polite-Bot)'); + if (wasChanged) { setRewrittenMessage(finalMessage); } } @@ -687,14 +690,26 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max )} +
+ +