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> = {};
|
||||
|
||||
// Créer une copie du texte anonymisé pour le traitement
|
||||
const workingText = anonymizedText; // ✅ Changé de 'let' à 'const'
|
||||
// Supprimer workingOriginal car elle n'est jamais utilisée
|
||||
// Approche simple : comparer caractère par caractère
|
||||
let originalIndex = 0;
|
||||
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(
|
||||
(a, b) => b.start - a.start
|
||||
(a, b) => a.start - b.start
|
||||
);
|
||||
|
||||
for (const result of sortedResults) {
|
||||
@@ -267,30 +267,42 @@ export async function POST(req: NextRequest) {
|
||||
result.end
|
||||
);
|
||||
|
||||
// Extraire les parties avant et après l'entité dans le texte original
|
||||
const beforeOriginal = originalText.substring(0, result.start);
|
||||
const afterOriginal = originalText.substring(result.end);
|
||||
// Avancer jusqu'à la position de l'entité dans le texte original
|
||||
while (originalIndex < result.start) {
|
||||
originalIndex++;
|
||||
anonymizedIndex++;
|
||||
}
|
||||
|
||||
// Trouver les mêmes parties dans le texte anonymisé
|
||||
const beforeIndex = workingText.indexOf(beforeOriginal);
|
||||
const afterIndex = workingText.lastIndexOf(afterOriginal);
|
||||
|
||||
if (beforeIndex !== -1 && afterIndex !== -1) {
|
||||
// Extraire la valeur de remplacement entre ces deux parties
|
||||
const startPos = beforeIndex + beforeOriginal.length;
|
||||
const endPos = afterIndex;
|
||||
const replacementValue = workingText.substring(startPos, endPos);
|
||||
|
||||
// Vérifier que c'est bien un remplacement (commence par [ et finit par ])
|
||||
if (
|
||||
replacementValue.startsWith("[") &&
|
||||
replacementValue.endsWith("]")
|
||||
// Maintenant on est au début de l'entité
|
||||
// Dans le texte anonymisé, on doit avoir un remplacement qui commence par '['
|
||||
if (anonymizedText[anonymizedIndex] === "[") {
|
||||
// Trouver la fin du remplacement (le ']')
|
||||
let endBracket = anonymizedIndex;
|
||||
while (
|
||||
endBracket < anonymizedText.length &&
|
||||
anonymizedText[endBracket] !== "]"
|
||||
) {
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user