Fix: Verbesserte Erkennung von umformulierten Nachrichten - nur inhaltliche Änderungen werden erkannt

This commit is contained in:
Hördle Bot
2025-12-05 11:33:39 +01:00
parent 803713dea7
commit c28c9fe8f0
2 changed files with 26 additions and 6 deletions

View File

@@ -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;
}

View File

@@ -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);
}
}
}