Compare commits

..

2 Commits

Author SHA1 Message Date
nBiqoz
a0e033b7eb fr 2025-09-07 13:39:30 +02:00
nBiqoz
f3c2cb6ff5 fr 2025-09-07 13:36:00 +02:00

View File

@@ -252,13 +252,13 @@ export async function POST(req: NextRequest) {
) => { ) => {
const replacementMap: Record<string, string> = {}; const replacementMap: Record<string, string> = {};
// Créer une copie du texte anonymisé pour le traitement // Approche simple : comparer caractère par caractère
const workingText = anonymizedText; // ✅ Changé de 'let' à 'const' let originalIndex = 0;
// Supprimer workingOriginal car elle n'est jamais utilisée let anonymizedIndex = 0;
// Trier les résultats par position (du plus grand au plus petit pour éviter les décalages) // Trier les résultats par position
const sortedResults = [...analyzerResults].sort( const sortedResults = [...analyzerResults].sort(
(a, b) => b.start - a.start (a, b) => a.start - b.start
); );
for (const result of sortedResults) { for (const result of sortedResults) {
@@ -267,30 +267,42 @@ export async function POST(req: NextRequest) {
result.end result.end
); );
// Extraire les parties avant et après l'entité dans le texte original // Avancer jusqu'à la position de l'entité dans le texte original
const beforeOriginal = originalText.substring(0, result.start); while (originalIndex < result.start) {
const afterOriginal = originalText.substring(result.end); originalIndex++;
anonymizedIndex++;
}
// Trouver les mêmes parties dans le texte anonymisé // Maintenant on est au début de l'entité
const beforeIndex = workingText.indexOf(beforeOriginal); // Dans le texte anonymisé, on doit avoir un remplacement qui commence par '['
const afterIndex = workingText.lastIndexOf(afterOriginal); if (anonymizedText[anonymizedIndex] === "[") {
// Trouver la fin du remplacement (le ']')
if (beforeIndex !== -1 && afterIndex !== -1) { let endBracket = anonymizedIndex;
// Extraire la valeur de remplacement entre ces deux parties while (
const startPos = beforeIndex + beforeOriginal.length; endBracket < anonymizedText.length &&
const endPos = afterIndex; anonymizedText[endBracket] !== "]"
const replacementValue = workingText.substring(startPos, endPos);
// Vérifier que c'est bien un remplacement (commence par [ et finit par ])
if (
replacementValue.startsWith("[") &&
replacementValue.endsWith("]")
) { ) {
replacementMap[originalValue] = replacementValue; endBracket++;
} }
endBracket++; // Inclure le ']'
const replacementValue = anonymizedText.substring(
anonymizedIndex,
endBracket
);
replacementMap[originalValue] = replacementValue;
// Avancer les index
originalIndex = result.end;
anonymizedIndex = endBracket;
} else {
// Si pas de '[', avancer normalement
originalIndex = result.end;
anonymizedIndex += result.end - result.start;
} }
} }
console.log("🔧 Valeurs de remplacement extraites:", replacementMap);
return replacementMap; return replacementMap;
}; };