Benutzer:TabellenBot
Dieser Benutzer ist ein Bot ohne Bot-Flag. Er wird von Kuebi betrieben.
|
Was macht dieser Bot?
Dokumentation von Verschiebungen vom ANR in den BNR
Zu jeder vollen Stunde liest der Bot das Verschiebungs-Logbuchlog aus, sammelt dabei die Verschiebungen aus dem Artikelnamensraum in den Benutzernamensraum und listet selbige in einer Tabelle. Die Tabelle wird monatlich neu angelegt.
Ebenfalls stündlich, aber jeweils 20 Minuten später, überprüft der Bot die Seiten im BNR. Fehlt der Hinweis „Baustelle“, so setzt er den Baustein (Beispiel: [1]). Ggf. vorhandene Kategorien werden entlinkt (Beispiel: [2]). Fehlt auf der Diskussionsseite des Benutzers ein Hinweis auf die Verschiebung, so schreibt der Bot dort eine entsprechende Nachricht (Beispiel: [3]).
Statische IP-Adressen
Einmal pro Stunde, zur jeweils 40. Minute, liest der Bot sämtliche Bearbeitungen von IPv4s ein. Danach erfolgt ein Abgleich mit einer Datenbank, in der derzeit über 90 000 IP-Bereiche (Ranges) erfasst sind. Davon sind (zahlenmäßig) etwa 82 % statisch. Nun gibt es drei Möglichkeiten:
- Die IP ist dynamisch: Dann passiert nichts.
- Die IP ist statisch: Dann schaut der Bot, ob ein entsprechender Hinweis (Vorlage:Statische IP) auf der Benutzer- und Diskussionsseite der IP vorhanden ist. Ist dies nicht der Fall, wird der Baustein gesetzt. Die Aktivitäten des Bots werden in einer Liste protokolliert und der Botbetreiber (mit erweiterten Rechten) schützt in der Folgezeit die betroffenen Benutzerseiten, wenn nicht schon zuvor andere Administratoren dies getan haben.
- Kein IP-Bereich passt zu der IP-Adresse, d. h. der IP-Bereich ist noch nicht in der Datenbank erfasst. Dann wird bei ripe.net per XML der zu der IP-Adresse gehörende Bereich und die dort hinterlegte Beschreibung (Land, Unternehmen/Institution usw.) eingelesen und in der Datenbank gespeichert. Die Zuordnung ob statisch oder dynamisch erfolgt dann manuell.
Ebenfalls einmal pro Stunde, allerdings zur jeweils 10. Minute, liest der Bot sämtliche Bearbeitungen von IPv6s ein. Danach verfährt er wie bei IPv4. Allerdings gibt es vergleichsweise deutlich weniger Bearbeitungen durch statische IPV6. Zudem sind durch die wesentlich schwächere Fragmentierung des IPV6-Adressbereiches auch deutlich weniger Einträge in der Datenbank (derzeit über 800).
Stündlich zur 1. Minute liest der Bot alle längerfristigen (>1 Monat) IP-Sperren in eine Datenbank ein. 5 Minuten danach schaut er nach Sperränderungen bei IPs (unblock bzw. reblock). Diese Änderungen werden ebenfalls in die DB eingepflegt. Weitere 5 Minuten später schaut sich der Bot dann alle Diskussionsseiten der längerfristig gesperrten (>3 Monate) IPs an und setzt dort ggf. die Vorlage „IP-Sperrung“ mit der Dauer der Sperrung. Und nochmals 5 Minuten später schaut sich der Bot dann alle Diskussionsseiten der IPs an, deren Sperren ausgelaufen sind bzw. aufgehoben (unblock) wurden. Vorhandene Vorlagen wie „IP-Sperrung“ und „offener Proxy“ werden dann entfernt. Damit soll die Pflege und Aktualität der vorhandenen Vorlagen gewährleistet sein. Die Datenbank enthält aktuell über 33.000 IP-Adressen. Davon sind über 1500 längerfristig gesperrt.
Sperrbenachrichtigungen
Regelmäßig (derzeit im Abstand von 20 s) überprüft der Bot das Benutzersperr-Logbuch. Alle neu gesperrten IPs erhalten dann sofort eine Benachrichtigung auf ihrer Benutzerseite, warum und wie lange sie gesperrt wurden, wenn sie von bestimmten Administratoren gesperrt wurden, die sich auf eine „Opt-In-Liste“ befinden. Dies gilt auch für alle angemeldeten Benutzer mit weniger als 250 Bearbeitungen. Keine Benachrichtigung erhalten infinit gesperrte angemeldete Benutzer. Deren Diskussionsseite wird − falls vorhanden − immer administrativ geleert und mit der Vorlage {{gesperrter Benutzer}} versehen. Daher ist in solchen Fällen eine Benachrichtigung sinnlos. Die Texte, die der Bot zur Benachrichtigung benutzt, sind auf dieser Seite: Benutzer:TabellenBot/code02. Ergänzungen und Korrekturen sind willkommen!
Des Weiteren setzt der Bot die Vorlagen {{Gesperrter Benutzer (nicht verifizierter Benutzername)}} und {{Gesperrter Benutzer (nicht offengelegtes bezahltes Schreiben)}} auf die Diskussionsseite angemeldeter Benutzer, die aus den in den Vorlagen genannten Gründen gesperrt wurden. Parallel dazu wird die Benutzerseite – wenn vorhanden – geleert. Auch hier gilt die nachfolgende Opt-In-Liste. D. h. nur bei Sperren durch diese Administratoren/innen wird der Bot aktiv:
- Itti
- Johannnes89
- Kein Einstein
- Kuebi
- LexICon
- Nordprinz
- Regi51
- Siphonarius
- Wnme
- Codc
Löschbenachrichtigungen
Regelmäßig (derzeit im Abstand von 60 s) liest der Bot das Lösch-Logbuch und zwar die frisch gelöschten Beiträge im Artikelnamensraum. Anschließend wird nachgeschaut, warum die Seite gelöscht wurde. Verschiebungen interessieren den Bot beispielsweise nicht. Danach erhält der Erstautor eine Benachrichtigung über die Löschung. Die wesentlichen Inhalte sind, von wem und warum gelöscht wurde. Dazu gibt es − je nach Löschgrund − noch weitergehende Hinweise und Tipps. Im Prinzip*) erhalten alle angemeldeten Benutzer eine Benachrichtigung. IPs nur dann, wenn zwischen Anlage der Seite und der Löschung weniger als 24 Stunden vergangen sind. Statische IPs und dynamische IPs werden da (noch) gleich behandelt. Wie das in Zukunft aussehen wird, ist v. a. davon abhängig.
*) Benachrichtigungen erfolgen derzeit nicht, wenn die Seite zwischen der Erstellung und der Löschung verschoben wurde. Die API gibt in solchen Fällen den Erstautor nicht aus. Der müsste dann wohl über die Verschiebung ermittelt werden, was aber dem TabellenBot bis jetzt noch nicht beigebracht wurde.
Die Texte, die der Bot zur Benachrichtigung benutzt, sind auf dieser Seite: Benutzer:TabellenBot/code01. Ergänzungen und Korrekturen sind willkommen! Wer nach der Löschung eines selbst angelegten Artikels, der eigenen Benutzerseite oder einer selbst hochgeladenen Datei (nicht Mediawiki) vom TabellenBot keine Benachrichtigungen dazu auf der eigenen Diskussionseite bekommen möchte, kann sich hier Benutzer:TabellenBot/Opt-out:Löschhinweis eintragen (für den Anfang: parallel dazu bitte eine Nachricht auf Benutzer Diskussion:Kuebi).
Korrektur des nowiki-ISBN-Fehlers
Bei Benutzung des Visual-Editors wird die Eingabe einer ISBN mit <nowiki>
-Tags eingeschlossen, so dass das automatische Markup der ISBN unterdrückt wird. Ursache ist ein Fehlverhalten des VisualEditors, siehe phab:T147198, das der TabellenBot korrigiert. Beispiel: [4]
Sporadische Einsätze
Der Bot wird darüber hinaus sporadisch für Massenänderungen bzw. -korrekturen im ANR eingesetzt.
Funktionsweise (Handball)
Hinweis: Diese Funktionen sind derzeit weitgehend deaktiviert!
Täglich ab 22:00 Uhr wird der Bot per Cron aufgerufen. Nacheinander werden derzeit vier Websites von www.SIS-handball.de und eine von dkb-handball-bundesliga.de aufgerufen und zwar
- Handball-Bundesliga 2019/20: [5]
- Handball-Bundesliga (Frauen) 2019/20: [6]
- 2. Handball-Bundesliga 2019/20: [7]
- 2. Handball-Bundesliga (Frauen) 2019/20: [8]
Zunächst schaut der Bot, ob vom aktuellen Tag ein Ergebnis vorliegt. Ist dies der Fall, so hat sich folglich die Tabelle gegenüber dem Vortag geändert (wenn nicht, wird das Programm beendet). Als nächstes wird die Tabelle in die Wiki-Syntax konvertiert (Hinweis: nackte Daten haben keine schöpferische Höhe). Danach wird der Quelltext der Seite mit der Tabelle aus der Wikipedia eingelesen. Die Tabelle ist in einer Vorlage, z. B. Vorlage:Tabelle der Handball-Bundesliga, und als solche in den Hauptartikel, im Beispiel Handball-Bundesliga 2017/18, eingebunden. Die Software nimmt die Tags in der Vorlage und als Ankerpunkte und führt den folgenden Befehl aus:
$modified=preg_replace("/<onlyinclude[^>]*?>.*?<\/onlyinclude>/si", "$table", $original);
D. h. alles, was im Original zwischen den Tags war (die alte Tabelle), wird durch die neue Tabelle (in der Variablen $table) ersetzt. In $table ist das neue Datum des Abrufs (auch in der Referenz) enthalten. Anschließend wird die so aktualisierte Seite mit dem Kommentar „Tabelle aktualisiert“ wieder gespeichert.
Unmittelbar nach dem Abruf der jeweiligen Tabelle wird auch die entsprechende Kreuztabelle der Liga eingelesen und entsprechend dem o. g. Verfahren bearbeitet bzw. aktualisiert.
Zusätzlich wird noch für die 1. Männer-Handball-Bundesliga die Torschützenliste bei dkb-handball-bundesliga.de eingelesen und ebenfalls nach dem o. g. Verfahren bearbeitet bzw. aktualisiert. Die Liste ist derzeit auf die ersten zehn Spieler begrenzt, kann prinzipiell aber beliebig erweitert werden. Außerdem wird noch bei bundesligainfo.de die Ewige Tabelle der deutschen Handball-Bundesliga eingelesen, bearbeitet und die entsprechende Vorlage aktualisiert.
Folgende Vorlagen werden von dem Bot aktualisiert, wenn am aktuellen Tag neue Ergebnisse vorliegen:
- 22:30 Uhr: Vorlage:Tabelle der Handball-Bundesliga
- 22:31 Uhr: Vorlage:Tabelle der Handball-Bundesliga (Frauen)
- 22:32 Uhr: Vorlage:Tabelle der 2. Handball-Bundesliga
- 22:33 Uhr: Vorlage:Tabelle der 2. Handball-Bundesliga (Frauen)
- 22:30 Uhr: Vorlage:Kreuztabelle der Handball-Bundesliga
- 22:31 Uhr: Vorlage:Kreuztabelle der Handball-Bundesliga (Frauen)
- 22:32 Uhr: Vorlage:Kreuztabelle der 2. Handball-Bundesliga
- 22:33 Uhr: Vorlage:Kreuztabelle der 2. Handball-Bundesliga (Frauen)
Die Vorlage:Torschützenliste der Handball-Bundesliga wird halbautomatisch über den Link www.hbz-da.de/wikipedia/goalgetters.php erstellt.
Technik
Die Software läuft auf einem V-Server. Sie ist in PHP geschrieben und wird per Cron regelmäßig aufgerufen. Das Bot-Modul basiert auf dem MwBot, wurde aber um einige Funktionen erweitert. Bei kritischen Ausführungsfehlern wird der Botbetreiber per E-Mail benachrichtigt.
Wünsche & Anregungen
Bitte auf der Diskussionsseite des Botbetreibers eintragen.
Historie
- 5. März 2017: Der Bot hat unter diesem Konto seinen automatischen Betrieb aufgenommen [9].
- 23. März 2017: Nach 49 erfolgreichen Durchläufen für den Bot das Botflag beantragt [10].
- 3. April 2017: Dem Bot wurde ein Botflag erteilt [11].
Einzelnachweise