Compare commits
2 Commits
88a94c46fe
...
a0e033b7eb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0e033b7eb | ||
|
|
f3c2cb6ff5 |
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user