Benutzer:JuethoBot

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Dies ist die Bot-Seite von Juetho. Fragen und Anmerkungen zu den Bot-Arbeiten (einschließlich selbst festgestellter Fehler) gehören auf die Bot-Diskussionsseite, Fragen und Anmerkungen zu meiner anderen Arbeit bei Wikibooks gehören auf meine „normale“ Diskussionsseite. Jürgen

Allgemeine Hinweise[Bearbeiten]

Nach einigem Nachdenken habe ich mit der Arbeit an einem eigenen Bot begonnen, vor allem weil die bisherigen WB-Bots nicht mehr aktiv sind. Letzter Auslöser war für mich bei der Kategorien-Diskussion die Notwendigkeit, bei einer Reihe von Seiten die Kategorie zu ändern.

Aufgrund meiner Vorkenntnisse verwende ich (anders als bei WMF-Projekten verbreitet üblich) nicht Pywikibot, sondern DotNetWikiBot.

Grundsätzlich sehe ich für die Bot-Aufgaben die manuelle Ausführung vor. Wünsche zur Erledigung können auf der Diskussionsseite oder auf Wikibooks:Bots/ Anfragen geäußert werden. Dazu benötige ich folgende Punkte (siehe die einzelnen Abschnitte):

  • Angabe der Seiten, die zu bearbeiten sind, ggf. mit passendem Filter
  • Art der Aufgabe mit den erforderlichen Informationen

Zu jedem Durchlauf gibt es ein Protokoll als xml-Datei mit der Liste aller bearbeiteten und aller nicht geänderten Seiten.

Vorhandene Funktionalität[Bearbeiten]

Die folgenden Funktionen sind bereits vorhanden.

Liste der Seiten[Bearbeiten]

Jede Aufgabe muss eindeutig wissen, welche Seiten zu bearbeiten sind. Diese können nach folgenden Kriterien gewählt werden:

  • nach Kategorie (alle Seiten einer Kategorie)
  • Unterseiten einer „Basisseite“ bzw. Seiten gemäß Spezial:Präfixindex
    Programmtechnisch arbeitet DotNetWikiBot mit Spezial:Alle Seiten; eine Startseite ist möglich, aber keine „letzte Seite“. Die Auswahl als Unterseiten funktioniert auch damit, wahlweise durch eine der folgenden Eingaben:
    Liederbuch/Liederbuch:LiederbMathematik: Schulmathematik
  • eine manuelle Liste (durch Einlesen aus einer Datei)
  • Links auf eine Basisseite
  • Seiten, auf die eine Basisseite verweist oder die eingebunden sind
  • (weitere Möglichkeiten sind denkbar, z. B. Seiten, die eine Datei verwenden oder die in einer der Wartungslisten stehen)

Diese Liste von Seiten kann zusätzlich gefiltert werden:

  • durch einen Begriff, der im Seitentitel enthalten ist oder nicht
  • durch einen Begriff, der im Quelltext enthalten ist oder nicht
  • nach dem verwendeten Trenner (Doppelpunkt oder Schrägstrich), und zwar dem ersten, zweiten oder dritten Vorkommen (damit ein Doppelpunkt im Buchtitel berücksichtigt werden kann)

Maximal 200 Seiten können pro Arbeitsgang bearbeitet werden. (Diese Beschränkung ist äußerst sinnvoll, weil ein Bot in der Regel nicht mehr als fünf Bearbeitungen pro Minute speichern darf.) Im Falle eines Falles ist der Arbeitsablauf mehrfach zu starten.

Das Filtern von Seiten und Suchen in Inhalten kann auch genutzt werden, um eine Liste der betreffenden Seiten zu erhalten, ohne Änderungen in den Seiten zu speichern, wie bei Hilfe Diskussion:Vandalismus/ Eingabeprüfungen/ Überschrift 1. Ebene. In diesem Fall kann statt der Online-Verbindung auch ein Xml-Dump genutzt werden. Es ist dann exakt anzugeben, welche Arten von Seiten und Versionsgeschichte benötigt werden.

Inhalte suchen und ersetzen[Bearbeiten]

Das dürfte die Aufgabe werden, die am häufigsten benutzt wird. Anzugeben sind der Suchtext und der neue Text; dieser kann auch leer sein, dann wird der bisherige Suchtext entfernt. Groß- und Kleinschreibung werden unterschieden.

Diese Aufgabe ist vorläufig abgeschlossen und funktionsfähig, siehe die Bot-Bearbeitungen (9. Jan. 2015 zwischen 14:27 und 14:54 Uhr).

Eigentlich ist es auch möglich, Groß- und Kleinbuchstaben gleich zu behandeln. Unklar bleibt aber, wie der "Ersetzungstext" zu schreiben ist. (Das hat sich in der Textverarbeitung immer wieder einmal als Problem gezeigt.) Deshalb ist das noch nicht verwirklicht, sondern wartet auf eine konkrete Anforderung.

Theoretisch könnten bei der Suche auch reguläre Ausdrücke benutzt werden. Nach meiner Erfahrung benötigt das RegEx-Testen viele Versuche, was die automatische Verarbeitung als Bot zu sehr behindern würde.

Kategorie ändern[Bearbeiten]

  • Anzugeben sind die bisherige und die künftige Kategorie. (Es wird stets die genaue Schreibweise verwendet; Klein- und Großbuchstaben werden unterschieden.)
  • Zusätze wie <includeonly> können nicht mit angemessenem Aufwand geprüft und berücksichtigt werden.
  • Kategorien, die aus einer Vorlage wie Vorlage:Dokumentation geholt werden, werden nicht geprüft und geändert.
Diese Aufgabe ist vorläufig abgeschlossen und funktionsfähig, siehe die Bearbeitungen (24. Dez. 2014 zwischen 15:47 und 17:35 Uhr).

Kategorie einfügen[Bearbeiten]

Anzugeben ist die Kategorie, der die Seiten zuzuordnen sind (gleichgültig, ob sie schon existiert oder nicht). Doppelte Einträge werden nicht vorgenommen. Es ist auch zu prüfen, ob die Kategorisierung bereits durch eine Vorlage o. ä. erfolgte.

Diese Aufgabe ist vorbereitet, aber noch nicht praktisch geprüft.

Kategorie entfernen[Bearbeiten]

Anzugeben ist die Kategorie, aus der die Seite zu entfernen ist. Eigentlich sollte auch geprüft werden, ob die Kategorisierung durch eine Vorlage o. ä. eingetragen wurde. Das kann aber zu vielen „Nebenwirkungen“ führen und ist deshalb ggf. manuell zu erledigen.

Diese Aufgabe ist vorläufig abgeschlossen und funktionsfähig, siehe die Bot-Bearbeitungen (28. Jan. 2015 zwischen 10:41 und 10:46 Uhr).

Seiten verschieben[Bearbeiten]

Anzugeben ist die Struktur des neuen Seitennamens, wobei die Bestandteile des bisherigen Namens verwendet werden können. Beispiele:

  • Aus Liederbuch: Xxx wird Liederbuch/ Xxx. Weil es vor dem Verschieben auch Seitennamen wie Liederbuch: Xxx/ Yyy gab, wurde [0]/ [1]/ [2] als Muster gewählt, nämlich die ersten drei Bestandteile (ab 0 gezählt) des alten Namens mit Schrägstrich.
  • Aus Benutzer:EvaMusterfrau/Buchentwurf (mit Unterseiten) wird Neues Buch/ [3]/ [4]. Im Muster werden also die ersten drei Bestandteile (Namensraum, Benutzername, Buchentwurf) ersetzt durch den neuen Buchtitel.
Diese Aufgabe ist vorläufig abgeschlossen und funktionsfähig, siehe die Bot-Bearbeitungen (3. Jan. 2015 zwischen 12:30 und 13:01 Uhr).

Linkfix für Weiterleitungen[Bearbeiten]

Anzugeben ist die Liste der betreffenden Seiten. Diese Aufgabe dürfte unmittelbar nach dem „Seiten verschieben“ folgen und dieselbe Seitenauswahl verwenden. Dabei werden nacheinander folgende Schritte erledigt:

  • Alle Seiten werden notiert, die auf die verschobenen Seiten verweisen oder sie (wie in Druckversionen oder Sammlungen) einbinden. Doubletten werden entfernt.
  • In allen diesen Seiten werden die Links auf den neuen Seitennamen umgelenkt.
  • Sofern dies vollständig erledigt wird, werden die Weiterleitungen zur Schnelllöschung vorgemerkt.
Diese Aufgabe ist vorläufig abgeschlossen und funktionsfähig, siehe die Bot-Bearbeitungen (5. Jan. 2015 zwischen 10:16 und 11:37 Uhr).

Interwiki-Links auf Wikibooks[Bearbeiten]

Leider arbeitet MichaelFreyTool nicht mehr, aber seine "Wikipedia-Linkliste" (inzwischen gelöscht) ist sehr nützlich. Ich habe es deshalb mit Erweiterungen „nachprogrammiert“; die Beschreibung steht auf Benutzer:JuethoBot/ Interwiki-Links.

Diese Aufgabe ist vorläufig abgeschlossen und funktionsfähig, siehe die Unterseiten dazu. Weitere Prüfungen und Nachbesserungen werden nach und nach eingefügt; nach den manuellen Korrekturen dürfte es beim nächsten Mal fast keine "roten Links" mehr geben.

Seiten löschen[Bearbeiten]

Diese Aufgabe ist in einer ersten Version fertiggestellt. Die vielen zusätzlichen Prüfungen müssen „von Hand“ erledigt werden:

  1. Seiten zusammenstellen: Anhand des Buchtitels sind Listen zu erstellen: alle Unterseiten des Buches, alle Diskussionsseiten, alle Links auf diese Seiten, alle eingebundenen Seiten (vor allem Dateien, die nicht von Commons stammen).
  2. Listen prüfen: Sind sie stimmig, fehlen Seiten oder sind welche zu entfernen...
  3. Lösche die Seiten anhand der Listen.
  4. Links prüfen: Entferne, soweit angebracht, die Links in Regalen, Wikipedia usw.

Für diese Aufgabe (nur dafür) hat dieser Bot vorsorglich Admin-Rechte erhalten.

Geplante Erweiterungen[Bearbeiten]

Die folgenden Funktionen sind geplant und werden verwirklicht, sobald Bedarf entsteht.

Vorlagen ändern (1)[Bearbeiten]

Sofern eine Vorlage durch eine andere ersetzt wird, ohne dass Parameter geändert werden, ist das nichts anderes als „Suchen & Ersetzen“ und deshalb einfach zu verwirklichen.

Beim Verschieben von Seiten und dazu den Linkfixes ist das bereits programmiert. Es muss nur noch als eigenständige Arbeit zusammengestellt werden.

Seiten löschen[Bearbeiten]

Programmtechnisch ist das kein Problem, erfordert aber viele zusätzliche Prüfungen, die (jedenfalls in Grenzen) automatisiert werden können. Das Konzept dazu stelle ich auf die Diskussionsseite.

Diese Funktionalität steht in einer ersten Version zur Verfügung. Die zusätzlichen Prüfungen müssen manuell erledigt werden.

Weitere Gedanken[Bearbeiten]

Die folgenden Funktionen sind denkbar. Wegen unterschiedlicher Probleme muss aber in jedem Einzelfall genau geplant werden.

Signatur nachtragen[Bearbeiten]

Das würde ich sehr gerne auf allen Diskussionsseiten erledigen. Aber wie bei CopperBot und seiner Diskussionsseite zu lesen ist, sind zu viele Randbedingungen zu beachten.

Dateien ersetzen[Bearbeiten]

Das ist grundsätzlich eine vernünftige Aufgabe, wie bei den letzten Änderungen durch globale Bots immer wieder zu sehen ist. Inwieweit ein WB-Bot diese Funktionalität gebrauchen kann, wird sich finden. Programmtechnisch ist das nichts anderes als „Suchen & Ersetzen“, muss aber Zusatzbedingungen berücksichtigen (z. B. eine Bildbeschreibung).

Vorlagen ändern (2)[Bearbeiten]

Sofern eine Vorlage durch eine andere ersetzt wird und sich dabei Parameter ändern, sind viele Möglichkeiten zu berücksichtigen, wie die Namen und Inhalte der Parameter zu übertragen sind. Das führt vor allem zu Problemen, wie das angegeben werden kann.

Es ist deshalb fraglich, ob diese Funktion eingebaut werden kann.

Weiterleitungen löschen[Bearbeiten]

Das ist (mit Admin-Rechten) grundsätzlich kein Problem, zumal es inzwischen die Vorlage:Nicht löschen gibt. Es ist aber noch nicht sicher, dass sie in allen Weiterleitungen eingetragen ist; deshalb muss darauf noch verzichtet werden. (Das ist eine Menge Arbeit, die leider nicht durch einen Bot erledigt werden kann, weil nur ein menschlicher Bearbeiter entscheiden kann, ob eine Weiterleitung erhalten bleiben soll. Ein Bot kann allenfalls eine Liste von Seiten erstellen und diese Prüfung unterstützen.)

Diskussionsseiten archivieren[Bearbeiten]

Das ist eine sehr nützliche Arbeit, die sich aber u.U. mit Diskussionsseiten archivieren „beißt“. Ziel ist eine Arbeitsweise ähnlich wie bei Vorlage:Autoarchiv in Verbindung mit ArchivBot und SpBot. Da ich für solche Verfahren bereits Vorlage:Archiv Hilfe erstellt habe, schweben mir folgende Maßnahmen vor:

  • Seiten, die automatisch archiviert werden sollen, werden mit einer Vorlage:Autoarchiv und einer Kategorie:Wikibooks:Autoarchiv gekennzeichnet. Das betrifft vor allem Diskussionsseiten, aber auch Ich brauche Hilfe, Verbesserungsvorschläge, Rundschau oder Schwarzes Brett.
  • Der Bot wird (angesichts der WB-Aktivität) manuell gestartet, möglichst am Monatsende.
  • Abschnitte mit Vorlage:Abgeschlossen werden nicht archiviert, sondern gelöscht. Abschnitte mit einer Vorlage:Noch nicht archivieren werden vorläufig übergangen.
  • Die Archivierung erfolgt analog zu der Wikipedia-Vorlage.

Für die eigentliche Archivierung gibt es zwei Verfahren, wobei in {{Autoarchiv}} eines ausgewählt wird:

  • Wenn die Inhalte mit der Suchfunktion erreicht werden sollen, dann muss der vollständige Text archiviert werden.
  • Andernfalls genügt der Permanentlink auf die letzte Bearbeitung mit {{subst:Archiv Hilfe...}}.

Auf einzelnen Seiten können Verweise mit {{Archiv Hilfe Hinweis...}} vorübergehend (wie bei "Ich brauche Hilfe") oder dauerhaft (wie bei Wikibooks:Bots) eingetragen werden.

Linkfix auf Wikipedia[Bearbeiten]

Als Ergänzung zu Linkfix für Weiterleitungen wäre es nützlich, auch Links innerhalb der Wikipedia auf Wikibooks anzupassen. Diese Aufgabe wäre mithilfe der Wikipedia-Linkliste relativ einfach zu verwirklichen. Problematisch sind folgende Punkte: Der Bot müsste auch bei Wikipedia registriert sein oder „unerkannt“ arbeiten; und solche Linkfixes werden laut WP-Regeln nicht vorgenommen.

Weitere Wünsche[Bearbeiten]

Grundsätzlich sind weitere Aufgaben denkbar (generell oder nach „spezieller Anforderung“). Relevant ist dann eine genaue Beschreibung.