InternetArchiveBot/Comment le robot corrige les liens brisés
Le processus de correction des liens brisés a lieu en quatre étapes : l’analyse syntaxique du contenu de la page, l’examen des liens qui apparaissent dans la page, la création d’archives pour ces liens puis la modification de la page.
Analyse syntaxique de la page
Tout d’abord, le robot récupère un lot de 5 000 articles sur lesquels il va travailler, à l’aide de l’API du wiki. Avant de commencer le traitement, le robot va vérifier si un changement de sa configuration a eu lieu dans l’interface de gestion. Après avoir appliqué ces éventuels changements de configuration, il va traiter ces 5 000 articles, généralement par ordre alphabétique.
Le robot commence l’analyse de la page en lisant son wikicode entièrement. Il essaye de récolter autant d’informations que possible sur les modèles de références qui contiennent des URL, les URL dans des crochets et les URL écrites telles quelles, en respectant les <nowiki>, <pre>, <code>, <syntaxhighlight>, <source> et commentaires HTML. Il essaye aussi de rechercher des informations concernant les liens qu’il trouve, par exemple si un autre contributeur ou robot a déclaré le lien comme brisé, ou si une URL d’archive est déjà renseigné. L’étape suivante est l’analyse des informations retournées par le moteur d’analyse syntaxique pour créer des métadonnées.
Les métadonnées de chaque référence — une source contenant un lien — sont construites à partir des données de l’analyseur : date d’accès, date d’archive, URL d’archive, URL originale, si l’URL est brisée, s’il y a un péage, si le wikicode est bien formé, si le wikicode peut être remplacé par un modèle, et si l’URL est déjà marquée comme brisée ou non. Si la date d’accès n’est pas trouvée dans la référence, InternetArchiveBot essayera de l’extrapoler à partir de la date à laquelle il a été ajouté à la page. Si une URL d’archive est trouvée qui se révèle ne pas correspondre à l’URL d’origine, le robot extrapolera pour vérifier que l’archive appartient bien à la référence.
Remarque concernant les URL dans les modèles : InternetArchiveBot ne gère pas, par défaut, les URL au sein des modèles inconnus, puisqu’il ne sait pas comment la modification de ces modèles peut affecter le rendu de la page. Tous les modèles qui ne sont pas configurés comme des modèles de référence sont considérés comme inconnus. La configuration des modèles a lieu sur le configuration des modèles de références.
Examen des liens
Après l’analyse de chaque lien, le robot, s’il est configuré pour cela, essayera de déterminer si le lien est effectivement brisé ou non en l’examinant rapidement, avec des recherches d’URL espacées pour éviter toute surcharge. Plusieurs URL d’un même domaine seront traitées en série, avec une seconde de pause. Les URL de domaines différents seront regroupés pour un traitement asynchrone. Seules les URL qui remplissent certains critères seront examinées.
Les URL à examiner ne doivent pas avoir été examinées lors des sept derniers jours. Si, cependant, le dernier examen de l’URL déterminé que l’URL semblait brisée, la période d’attente est réduite à trois jours. Une URL doit échouer à trois examens consécutifs pour être considérée comme brisée. Cela signifie qu’il faut au minimum neuf jours pour qu’une URL soit considérée comme brisée. La période d’attente redevient de sept jours une fois que l’URL est considérée comme brisée. Si l’examen d’une URL brisée la révèle comme en ligne, elle sera immédiatement marquée comme en ligne. Les URL et domaines définis comme permenligne (en ligne en permanence) seront toujours vues comme en ligne, sauf si marquée sur le wiki comme étant brisée et que le robot est configuré pour accepter ce marquage contre l’évaluation qu’il a faite. Les liens permenlignes ne sont pas examinés. Les URL et domaines définis comme 'permhorsligne (brisés définitivement) seront toujours vus comme brisés sans exception. Les liens permhorsligne ne sont pas examinés.
En plus des états permengligne et permhorsligne, le robot n’examine pas non plus ce qu’il croit être des sites à inscription. Ce genre de site ne peut pas être évalué précisément sans avoir l’autorisation d’accès. Il en est de même si la page est hors ligne. Par conséquent, le robot considèrera uniquement l’URL comme brisée si cela a été configuré manuellement pour le robot ou marqué comme tel sur Wikipédia. Le robot recherche les modèles, valeurs de paramètres dans les modèles CS1 qui sont définis par les utilisateurs identifiant le site comme requérant un compte gratuit ou payant pour accéder au contenu. Dans ce cas, le domaine est marqué comme un site à inscription et le robot arrête de le vérifier.
Archivage des liens morts
Quand tous les liens ont été examinés, le robot va rechercher des archives pour les liens qu’il a déterminé comme brisés. S’il est configuré pour cela, il peut également rechercher les archives des liens en ligne. Si le robot a déjà découvert une URL d’archive pour un lien particulier dans le passé, il va s’en remettre à sa mémoire. InternatArchiveBot peut reconnaitre et utiliser plus de 20 services d’archivage différents. Si aucune archive existe pour un lien en ligne, le robot essayera d’enregistrer une copie du lien dans la Machine à remonter le temps (Wayback Machine) s’il est configuré pour cela, et utilisera l’enregistrement résultant comme la nouvelle URL d’archive. Si aucun enregistrement d’archive pour un lien brisé n’est trouvé, le robot le considèrera comme incorrigible et le marquera comme une référence définitivement brisée. Si la référence semble avoir une URL d’archive mais que celle-ci n’est pas reconnue comme valide, ou si l’URL ne correspond pas à l’enregistrement, elle sera remplacée par une que le robot considère comme valide. Cela assure l’intégrité des références et aide à minimiser les effets des erreurs et du vandalisme.
Modification de la page
Une fois que le robot a terminé d’examiner les liens, il essayera de vérifier qu’il n’est pas en train de répéter une modification annulée auparavant. Si c’est le cas, il essayera de comprendre pourquoi la modification a été annulée, notamment si la raison est le signalement d’un faux positif. S’il évalue que la modification était potentiellement un faux positif, il signalera le faux positif à la personne ayant effectué l’annulation et n’essayera pas de refaire la modification avant que les développeurs n’aient vérifié ce signalement.
Pour finir, une modification est publiée sur l’article. Le robot effectue aussi certains nettoyages et changements mineurs à la référence qu’il entend modifier. Le robot rend notamment les espaces du modèle plus cohérents, force l’utilisation de HTTPS sur les URL d’archive, et passe parfois l’état de l’URL comme brisé sur le modèle de référence. Si le robot rencontre une référence qui n’utilise pas un modèle de référence, le robot convertira le wikicode en modèle si cela est possible sans casser la mise en forme. Si une référence a un modèle d’archive, un modèle qui affiche un lien vers l’enregistrement de l’archive de l’URL originale et que le modèle est considéré comme obsolète, le robot le convertira vers la solution préférée par défaut.
Après la modification, s’il est configuré pour cela, le robot laissera un message sur la page de discussion pour décrire les changements qu’il a fait sur la page. Le robot peut aussi être configuré pour ne laisser que le message sur la page de discussion sans modifier l’article.