InternetArchiveBot/Wie der Bot defekte Links repariert
Der Prozess der Reparatur defekter Links erfolgt in vier Schritten: das Parsen des Inhalts der Seite, das Scannen der Links, die auf der Seite erscheinen, das Erstellen von Archivversionen von Links und die Bearbeitung der Seite.
Parsen der Seite
Zunächst ruft der Bot über die API des Wikis einen Stapel von 5.000 Artikeln ab, die er bearbeiten soll. Bevor er mit der Bearbeitung des Stapels beginnt, prüft der Bot, ob über die Verwaltungsoberfläche Konfigurationsänderungen an ihm vorgenommen wurden. Sobald er etwaige Konfigurationsänderungen übernommen hat, fährt er mit der Bearbeitung des 5.000 Artikel umfassenden Stapels fort, der üblicherweise in alphabetischer Reihenfolge vorliegt.
Der Bot beginnt seine Seitenanalyse, indem er den Wikitext der Seite vollständig durchscannt. Er versucht, so viele Informationen wie möglich über Zitiervorlagen mit URLs, in eckigen Klammern enthaltene URLs und direkt eingetragene URLs zu sammeln, wobei er die Tags <nowiki>, <pre>, <code>, <syntaxhighlight>, <source> sowie HTML-Kommentare berücksichtigt. Zudem versucht er, relevante Informationen zu den gefundenen Links abzurufen – etwa, ob ein anderer Bearbeiter oder Bot den Link bereits als defekt markiert hat oder ob ihm bereits Archiv-URLs zugeordnet sind. Der nächste Schritt besteht darin, die von der Parsing-Engine zurückgegebenen Parsing-Informationen zu analysieren, um Metadaten darüber zu erstellen.
Die Metadaten für jede Referenz - eine Quelle mit einem Link darin - werden aus den Parserdaten erstellt, die Folgendes umfassen: Zugriffszeit, Archivzeit, Archive-URL, die ursprüngliche URL, ob die URL tot ist, ob sie als Paywall-URL betrachtet wird, wenn es sich um eine nicht wohlgeformte Referenz handelt, wenn es um eine Referenz handelt die nach Wunsch in eine Vorlage erweitert werden kann, ob die URL bereits als tot behandelt wird oder nicht. Wenn die Abrufzeit nicht in der Referenz gefunden wird, wird InternetArchiveBot versuchen, die Abrufzeit zu extrapolieren, indem davon ausgegangen wird, dass die Zeit, zu der der Link auf die Seite hinzugefügt wurde, die Zeit war, zu der auf die Links zuletzt zugegriffen wurden. Wenn eine Archiv-URL gefunden wird, die dem Bot nicht die ursprüngliche URL zeigt, die angezeigt werden sollte, wird der Bot diese extrapolieren, um zu überprüfen, ob das Archiv tatsächlich zur Referenz passt.
Hinweis zu URLs in Vorlagen: Der InternetArchiveBot verarbeitet standardmäßig keine URLs, die sich innerhalb unbekannter Vorlagen befinden, da er nicht wissen kann, wie eine Änderung der betreffenden Vorlage die gerenderte Seite beeinflussen würde. Alle Vorlagen, die nicht als Zitiervorlage konfiguriert sind, gelten als unbekannte Vorlagen. Die Konfiguration von Vorlagen erfolgt über den Citation Templates configurator.
Scannen der Links
Nachdem jeder Link analysiert wurde, wird der Bot, wenn so konfiguriert, versuchen zu bestimmen, ob der Link tatsächlich tot ist oder nicht, indem er einen schnellen Scan durchführt, wobei URL-Lookups ausgespart werden, um Überlast zu vermeiden. Mehrere URLs in der gleichen Domain werden in einer Reihe mit einer Pause von einer Sekunde abgerufen. URLs einer anderen Domain werden für eine asynchrone Abfrage gruppiert. Nur URLs, die eine Reihe von Kriterien erfüllen, werden zum Scannen berücksichtigt.
URLs to be scanned must not have been scanned in the last seven days. If, however, the last scan of the URL resulted in a response marking the URL dead, then the waiting period is reduced to three days. A URL must fail three scans consecutively in order to be considered dead. This means it takes a minimum of nine days for a URL to be considered dead. The waiting period returns to seven days once it is considered dead. If a dead URL is scanned and found to be alive, its status will be reset to alive immediately. URLs and domains set to the permalive (i.e. permanently alive) state will be always seen as alive, unless it is tagged on wiki as a dead link, and the bot is configured to accept the tag over its own assessment. Permalive links are not scanned. URLs, and domains, set to permadead (i.e. permanently dead) will be always seen as dead without exception. Permadead links are not scanned.
Zusätzlich zu den Statussen Permadead und Permalive scannt der Bot auch keine Links, bei denen er glaubt, dass es sich um Abonnement-Sites handelt (subscription). Und zwar deswegen, weil solche Websites nicht genau bewertet werden können, ohne zu wissen, dass die Antwort auf fehlende Anmeldeinformationen zurückzuführen ist oder wenn die Seite tatsächlich heruntergefahren ist. Als Ergebnis wird der Bot die URL nur als tot betrachten, wenn das manuell im Bot eingestellt wird oder wenn das auf Wikipedia markiert ist. Der Bot sucht nach Vorlagen oder Parameterwerten in den CS1-Vorlagen, die vom Benutzer festgelegt werden, um auszudrücken, dass die Website ein kostenloses oder kostenpflichtiges Login benötigt, um auf das Material zuzugreifen. Wenn solche Hinweise gefunden werden, wird die Domain als Abonnementseite markiert und der Bot hört auf, sie zu überprüfen.
Archivierung toter Links
Nachdem alle Links gescannt wurden, sucht der Bot nach Archiven für Links, die tot sind. Wenn so konfiguriert, kann sie auch nach Archiven für alle lebenden Links suchen. Wenn der Bot in der Vergangenheit bereits eine Archiv-URL für einen bestimmten Link gefunden hat, greift er auf seine gespeicherten Daten zurück. InternetArchiveBot kann mehr als 20 verschiedene Archivdienste erkennen und verwenden. Wenn für einen lebenden Link kein Archiv existiert, versucht der Bot, eine Kopie des Links in die Wayback Machine zu speichern, wenn so konfiguriert, und verwendet den daraus resultierenden Snapshot als neue Archiv-URL. Wenn keine Archiv-Snapshot für einen toten Link gefunden wird, wird der Bot ihn als unbeständig betrachten und als dauerhaft tote Referenz markieren. Wenn die Referenz eine Archiv-URL hat, aber nicht als gültiges Archiv anerkannt wird oder die URL nicht mit dem Snapshot übereinstimmt, wird sie durch eine, die der Bot für gültig hält, ersetzt. Dies sorgt für die Integrität der Verweise und hilft, die Auswirkungen von Fehlern und Vandalismus zu minimieren.
Bearbeiten der Seite
Sobald der Bot die Links analysiert hat, versucht er zu bestimmen, ob er eine wiederholte Bearbeitung vornimmt, die in der Vergangenheit zurückgesetzt wurde. Wenn festgestellt wird, dass eine Bearbeitung wiederholt wird, wird versucht herauszufinden, warum die Bearbeitung umgekehrt wurde, einschließlich der Frage, ob sie als falsch positiv gemeldet wurde. Wenn die Bearbeitung zum Urteil kommt, dass die Bearbeitung möglicherweise falsch positiv gewesen sein könnte, wird sie den falschen positiven Bericht im Namen des zurückkehrenden Benutzers melden und die Bearbeitung erst erneut versuchen, wenn ein Entwickler den Bericht überprüft hat.
Schließlich wird der Artikel bearbeitet. Der Bot macht auch einige Reinigungen nebenher und wird andere kleine Änderungen an den Referenzen vornehmen, die er bearbeiten will. Meistens wird der Bot die Verwendung von Leerzeichen in Vorlagen konsistenter machen, die Verwendung von HTTPS speziell auf archivierten URLs erzwingen, wenn verfügbar, und manchmal einfach den Url-Status auf einer Zitatvorlage von lebendig zu tot umändern. Wenn der Bot eine Referenz findet, die keine Zitatvorlage verwendet, wird der Bot die pure URL-Rreferenz in eine Referenz umwandeln, die eine Zitatvorlage verwendet, wenn er dies ohne das Format der Referenz zu brechen tun kann. Wenn ein einfacher Verweis über eine Archivvorlage verfügt – also eine Vorlage, die einen Link zum Archiv-Snapshot der ursprünglichen URL generiert – und diese Vorlage als veraltet gilt, wandelt der Bot sie in die bevorzugte Standardvorlage um.
Nach der Bearbeitung hinterlässt der Bot – sofern entsprechend konfiguriert – eine Nachricht auf der Diskussionsseite, in der er die an der Seite vorgenommenen Änderungen beschreibt. Alternativ kann der Bot so konfiguriert werden, dass er lediglich Nachrichten auf der Diskussionsseite hinterlässt, anstatt den Artikel zu bearbeiten.