diff --git a/app/api/rewrite-message/route.ts b/app/api/rewrite-message/route.ts index a264919..f09e017 100644 --- a/app/api/rewrite-message/route.ts +++ b/app/api/rewrite-message/route.ts @@ -65,18 +65,33 @@ Message: "${message}"`; // 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) + // Remove surrounding quotes if present (AI sometimes adds quotes) + // Handle both single and double quotes, and multiple layers of quotes + rewrittenMessage = rewrittenMessage.replace(/^["']+|["']+$/g, '').trim(); + + // Normalize both messages for comparison (remove extra whitespace, normalize quotes, case-insensitive) + const normalizeForComparison = (text: string): string => { + return text + .trim() + .replace(/["']/g, '') // Remove all quotes for comparison + .replace(/\s+/g, ' ') // Normalize whitespace + .toLowerCase() + .replace(/[.,!?;:]\s*$/, ''); // Remove trailing punctuation for comparison + }; + const originalTrimmed = message.trim(); const rewrittenTrimmed = rewrittenMessage.trim(); + const originalNormalized = normalizeForComparison(originalTrimmed); + const rewrittenNormalized = normalizeForComparison(rewrittenTrimmed); - // Check if message was actually changed (normalize for comparison) - const wasChanged = rewrittenTrimmed.toLowerCase() !== originalTrimmed.toLowerCase() && - rewrittenTrimmed !== originalTrimmed; + // Check if message was actually changed (content-wise, not just formatting) + // Only consider it changed if the normalized content is different + const wasChanged = originalNormalized !== rewrittenNormalized; if (wasChanged) { rewrittenMessage = rewrittenTrimmed + " (autocorrected by Polite-Bot)"; } else { - // Return original message if not changed + // Return original message if not changed (without suffix) rewrittenMessage = originalTrimmed; } diff --git a/components/Game.tsx b/components/Game.tsx index fb8c6a6..89b8e58 100644 --- a/components/Game.tsx +++ b/components/Game.tsx @@ -348,7 +348,12 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max // 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); + // Remove the suffix for display + const displayMessage = finalMessage.replace(/\s*\(autocorrected by Polite-Bot\)\s*/g, '').trim(); + setRewrittenMessage(displayMessage); + } else { + // Ensure rewrittenMessage is not set if message wasn't changed + setRewrittenMessage(null); } } }