fix: nettoyage agressif des liens team avec regex multiligne
- Utilisation d'une regex multiligne pour supprimer tous les blocs <li> contenant des liens /team - Nettoyage manuel en fallback si la regex ne capture pas tout - Suppression de tous les formats: /team, /team/, /team.html Cela devrait éliminer définitivement les doublons de liens Équipe
This commit is contained in:
@@ -240,52 +240,61 @@ try:
|
||||
|
||||
# ÉTAPE 1: Supprimer TOUS les liens Équipe existants (même s'il n'y en a qu'un)
|
||||
print("🧹 Nettoyage de tous les liens Équipe existants...")
|
||||
lines = content.splitlines(keepends=True)
|
||||
if lines and not lines[-1].endswith('\n'):
|
||||
lines[-1] = lines[-1] + '\n'
|
||||
|
||||
new_lines = []
|
||||
skip_team_link = False
|
||||
team_links_removed = 0
|
||||
# APPROCHE AGRESSIVE: Supprimer tous les blocs <li> contenant un lien vers /team
|
||||
# Utiliser une regex multiligne pour détecter et supprimer les blocs complets
|
||||
team_link_block_pattern = r'<li[^>]*>.*?<Link[^>]*href=["\']/?team(/|\.html)?["\'][^>]*>.*?</Link>.*?</li>'
|
||||
content_cleaned = re.sub(team_link_block_pattern, '', content, flags=re.DOTALL | re.IGNORECASE)
|
||||
|
||||
i = 0
|
||||
while i < len(lines):
|
||||
line = lines[i]
|
||||
|
||||
# Détecter le début d'un lien Équipe (inclut /team, /team/, /team.html)
|
||||
# Utiliser une regex pour détecter tous les formats possibles
|
||||
team_link_match = re.search(r'href=["\']/?team(/|\.html)?["\']|href=\{["\']/?team', line)
|
||||
if team_link_match and not skip_team_link:
|
||||
skip_team_link = True
|
||||
team_links_removed += 1
|
||||
# Ignorer cette ligne et les lignes suivantes jusqu'à </li>
|
||||
i += 1
|
||||
continue
|
||||
|
||||
# Si on est dans un bloc Équipe à supprimer, ignorer jusqu'à </li>
|
||||
if skip_team_link:
|
||||
# Vérifier si on a atteint la fin du <li>
|
||||
if '</li>' in line:
|
||||
skip_team_link = False
|
||||
# Vérifier aussi si on trouve un nouveau <li> sans avoir fermé le précédent (cas mal formaté)
|
||||
elif '<li' in line and '</li>' not in line:
|
||||
# On est dans un nouveau <li>, donc le précédent était mal formaté, continuer
|
||||
pass
|
||||
i += 1
|
||||
continue
|
||||
|
||||
new_lines.append(line)
|
||||
i += 1
|
||||
# Compter combien de liens ont été supprimés
|
||||
remaining_before = len(re.findall(r'href=["\']/?team(/|\.html)?["\']', content))
|
||||
remaining_after = len(re.findall(r'href=["\']/?team(/|\.html)?["\']', content_cleaned))
|
||||
team_links_removed = remaining_before - remaining_after
|
||||
|
||||
if team_links_removed > 0:
|
||||
print(f"✅ {team_links_removed} lien(s) Équipe supprimé(s)")
|
||||
print(f"✅ {team_links_removed} lien(s) Équipe supprimé(s) (regex multiligne)")
|
||||
elif remaining_after > 0:
|
||||
print(f"⚠️ {remaining_after} lien(s) Équipe encore présent(s) après nettoyage regex, nettoyage manuel...")
|
||||
# Nettoyage manuel ligne par ligne si la regex n'a pas tout capturé
|
||||
lines = content_cleaned.splitlines(keepends=True)
|
||||
if lines and not lines[-1].endswith('\n'):
|
||||
lines[-1] = lines[-1] + '\n'
|
||||
|
||||
new_lines = []
|
||||
skip_team_link = False
|
||||
manual_removed = 0
|
||||
|
||||
i = 0
|
||||
while i < len(lines):
|
||||
line = lines[i]
|
||||
|
||||
# Détecter le début d'un lien Équipe
|
||||
team_link_match = re.search(r'href=["\']/?team(/|\.html)?["\']|href=\{["\']/?team', line)
|
||||
if team_link_match and not skip_team_link:
|
||||
skip_team_link = True
|
||||
manual_removed += 1
|
||||
i += 1
|
||||
continue
|
||||
|
||||
if skip_team_link:
|
||||
if '</li>' in line:
|
||||
skip_team_link = False
|
||||
i += 1
|
||||
continue
|
||||
|
||||
new_lines.append(line)
|
||||
i += 1
|
||||
|
||||
if manual_removed > 0:
|
||||
content_cleaned = ''.join(new_lines)
|
||||
print(f"✅ {manual_removed} lien(s) Équipe supplémentaire(s) supprimé(s) (nettoyage manuel)")
|
||||
|
||||
# ÉTAPE 2: Ajouter un seul lien Équipe au bon endroit
|
||||
content_cleaned = ''.join(new_lines)
|
||||
lines = content_cleaned.splitlines(keepends=True)
|
||||
if lines and not lines[-1].endswith('\n'):
|
||||
lines[-1] = lines[-1] + '\n'
|
||||
|
||||
# ÉTAPE 2: Ajouter un seul lien Équipe au bon endroit
|
||||
|
||||
insert_idx = -1
|
||||
for i, line in enumerate(lines):
|
||||
if 'href="/overview"' in line:
|
||||
|
||||
Reference in New Issue
Block a user