Benutzer:StipenTreublatt/Bot

aus Wiki Aventurica, dem DSA-Fanprojekt
Beispiel:
-start:Arkos Schah
versucht von Arkos an die Artikel alphabetisch zu berühren, plus zusätzlich den Artikel Schah. Da beide Artikel nicht vorhanden sind passiert einfach nix.
Es funktioniert ebenfalls den Artikelnamen in "Anführungszeichen" zu schreiben.
  • Befehl zum Abbrechen eines MS-Windows-Kommandozeilen-Prozesses: "Strg+C"
  • Kategorie:WLH leeren - Bot schreiben, der die ganze Sache automatisiert?
Wartungsaufgaben
weblinkchecker.py -start:!
weblinkchecker.py -repeat

touch.py

touch.py -start:Chrysir

Alle Seiten ab Chrysir werden berührt

touch.py -cat:Kategorie:Meisterinformationen_zu_Abenteuern

Alle Seiten in der Kategorie:Meisterinformationen zu Abenteuern werden berührt

redirect.py

redirect.py double

Doppelte Weiterleitungen werden repariert, mit Änderungsnachfrage.

redirect.py broken

Redirs auf nicht vorhandene Seiten werden nach Bestätigung gelöscht.

delete.py

delete.py -links:"Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite" -always

Alle von Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite verlinkten Artikel werden gelöscht, keine Nachfrage

delete.py -cat:"Löschen" -always

Alle Artikel in Kategorie:Löschen werden gelöscht, keine Nachfrage

template.py

template.py "Navigationsleiste Aventurischer Index" "Nav Aventurischer Index"

Ersetzt eine Vorlage durch eine andere auf allen Seiten, auf denen sie eingebunden ist. Praktisch wenn man Vorlagen umbenennt.
BUG: Stellen an denen die Vorlage mittels {{Vorlage:Vorlage}} eingebunden ist werden nicht verändert.

template.py -category:Soloabenteuer "Infobox Soloabenteuer" "Infobox Soloabenteuer/neues Format"

Ebenfalls eine Vorlagenersetzung, es wird auf allen geänderten Seiten die angegebene Kategorie hinzugefügt. Ungeschickt dass das Kategoriehinzufügen nicht ohne das Ersetzen der Vorlage funktioniert. Daher: Alternative zum Herausbrechen einer Kategorie aus einer Vorlage.

template.py -remove Spoiler

Vorlage wird komplett entfernt. Man kann jedoch keine Kategorie angeben, auf die das Entfernen eingeschränkt bleiben soll. Zweiter Minuspunkt für dieses Skript.

template.py -xml:WikiAventurica.xml -remove Spoiler

Entfernt die Einbindung der "Vorlage:Spoiler" auf allen im XML-Dump angegebenen Seiten durch ein Leerzeichen. Der Dump muss dabei im Ordner pywikipediabot liegen.

template.py -subst "Dreispaltig Abschluss"

Fügt ein "subst:" vor die Vorlageneinbindung hinzu.

weblinkchecker.py

weblinkchecker.py -weblink:www.farben-der-tsa.de

Sollte jetzt funktionieren (Spezial:Linksearch existiert), aber noch nicht getestet.

weblinkchecker.py -start:!

Lädt alle Wikiseiten und überprüft externe Links. Gefundene deadlinks werden ersteinmal in einer lokalen .dat-Datei gespeichert. Mindestens eine Woche später weiterhin als inaktiv angetroffene Links werden dann in einer Textdatei im Unterordner "deadlinks" gespeichert. Diese ist in Wikisyntax gehalten.

weblinkchecker.py -repeat

Überprüft alle beim letzten Durchlauf gemeldeten Seiten mit inaktiven externen Links.

add_text.py

python add_text.py -cat:"Spielerhelden" -text:"{{SC}}" -except:"\{\{([Vv]orlage:|)[Ss]C" -up -summary:"Hinzufügen von [[Vorlage:SC]]"

Fügt in der Kategorie:Spielerhelden den Text "{{SC}}" am Anfang der Seite hinzu.

movepages.py

python movepages.py "-pairs:E:\DSA\Wiki\Move.txt"

Führt die in der Datei angegebenen Verschiebungen durch. Die Verschiebungen sind dabei im Format "[[alt]] [[neu]]" gegeben.

replace.py

Einige Notizen zur Regex:

"Suchen"-Regex:
  • Folgende Zeichen müssen entwertet werden:
. ^ $ * + ? { } [ ] \ | ( )
  • Zeilenumbruch
\r\n
"Ersetzen"-Regex:
  • Folgende Zeichen müssen entwertet werden:
"
  • Zeilenumbruch
\n
Parameter
  • "-subcats:" Bearbeitet die Unterkategorien der gegebenen Kategorie.
  • "-addcat:" Fügt auf allen geänderten Seiten die angegebene Kategorie hinzu.

Einige beispielhafte, einfache Aufrufe (Speziellere auf einer Unterseite):

replace.py -page:"Alptraum ohne Ende (Meisterinformationen)" -regex "\{\{Spoiler.*?\}\}" ""

Ersetzt die Einbindung der "Vorlage:Spoiler" auf "Alptraum ohne Ende (Meisterinformationen)" durch nichts.

-subcats

replace.py -xml:WikiAventurica.xml -regex "\{\{Spoiler.*?\}\}" ""

Ersetzt die Einbindung der "Vorlage:Spoiler" auf allen im XML-Dump angegebenen Seiten durch nichts. Der Dump muss dabei im Ordner pywikipediabot liegen.

replace.py -cat:Herrscherauflistung -regex "\{\{Prettytable\}\}" "class=\"wikitable\""

Ersetzt auf allen Seiten der Kategorie:Herrscherauflistung die die Vorlage:Prettytable durch die css-Klasse wikitable.

replace.py -cat:Gruppenabenteuer -regex "=Abenteuerbeschreibung=\s\s" ""

Entfernt die Zeile "=Abenteuerbeschreibung=" vollständig aus jeder Seite der Kat:Gruppenabenteuer.

replace.py -ref:"Zyklop (Rasse)" -regex "\[\[Zyklop \(Rasse\)(\]\]|/|#|\|)" "[[Zyklop\1"

Beispielhafter Aufruf für Kategorie:WLH leeren. \1 verstehe ich jedoch nicht... bedeutet vielleicht dass das letzte gefundene Zeichen nicht ersetzt wird.
( und ) bilden eine sogenannte konsumierende Gruppierung. Im Ersetze-String kann man mit \1, \2 usw. die gruppierten Teile wieder einbauen. Die Numerierung beginnt bei der am weitesten links stehenden sich öffenden Klammer. Du hast aber richtig geraten. Ich gruppiere etwas und füge es an gleicher Stelle wieder ein. Dadurch wird es nicht ersetzt. Aber mit der Angabe im Suchestring verhindere ich Treffer bei Begriffen die noch weitergehen. --Falk Steinhauer 23:04, 11. Nov. 2008 (CET)

replace.py -catr:Spielwelt -regex " usw\.=" "="

Entfernt "usw." aus allen Überschriften auf allen Seiten in allen Unterkategorien von Kat:Spielwelt.

replace.py -cat:Gruppenabenteuer -regex "<!-- Diese Seiteninformationen wurden vom AbListe2Mediawiki-Makro V0\.\d\d erstellt -->\s\s" ""

Entfernt den Kommentar mit allen aufgetretenen Versionsnummern.

replace.py -catr:Index -regex "( |')(?P<Zahl>\d|\d\d|)0( ff|ff| ff\.|ff\.)( |\s|'|,|;)" "\1\g<Zahl>0-\g<Zahl>2\4" "( |')(?P<Zahl>\d|\d\d|)1( ff|ff| ff.|ff.)( |\s|'|,|;)" "\1\g<Zahl>1-\g<Zahl>3\4"

replace.py -catr:Regelindex -regex "( |')(?P<Zahl>\d|\d\d|)0( f|f| f\.|f\.)( |\s|'|,|;)" "\1\g<Zahl>0-\g<Zahl>1\4" "( |')(?P<Zahl>\d|\d\d|)2( f|f| f\.|f\.)( |\s|'|,|;)" "\1\g<Zahl>2-\g<Zahl>3\4"

Zwei Aufrufe, die Seitenangaben mit ff oder f durch eine entsprechden Zahlenangabe ersetzen. Eine vollständige Liste zum Erwischen aller solcher Angaben findet sich in der Versionsgeschichte.

replace.py -cat:Roman -regex "\|(Nr|Seitenzahl|Autoren|Cover|Zeit|Ort|Erscheinungsdatum|Preis|ISBN|Direktlinks)=-\r\n" "|\1=\n"

Entfernt die - aus den Infoboxeinträgen der Romane, da diese die dpl-Listen stören.

replace.py -ref:"Benutzer:Geran Bot" -namespace:1 -regex "===LinkCheck-Ergebnis===" "===LinkCheck-Ergebnis===\n[[Kategorie:Stips Kat]]"

Fügt bei auf allen Diskussionseiten, bei denen Geran Bot defekte Links gemeldet hat, Kategorie:Stips Kat hinzu.

replace.py "-links:Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite" -regex "\[\[" "In dieser Kategorie finden sich Personen mit der [[Profession]] [[{{subst:PAGENAME}}]].\n[["

Fügt auf allen von Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite verlinkten Seiten den genannten Ausdruck hinzu. Habe ich dazu benutzt, den Bot Kategoriebeschreibungen ändern zu lassen. Liste wurde vorher mit category.py listify erstellt.

replace.py -xml:WikiAventurica.xml -regex "align=.*?right.*?.*?\{\{Prettytable\}\}\s\s!bgcolor=#ffff80\|Name\s\s!bgcolor=#ffff80\|Titel\s\s!bgcolor=#ffff80\|von\s\s!bgcolor=#ffff80\|bis\s\s" "class=\"wikitable\" align=\"right\"\n|-class=\"vordergrund\"\n!Name!!Titel!!von!!bis\n"

Funktioniert unerklärlicherweise nicht.

category.py

For the actions tidy and tree, the bot will store the category structure locally in category.dump. This saves time and server load, but if it uses these data later, they may be outdated; use the -rebuild parameter in this case.

Anscheinend benutzt das Script auch bei anderen Befehlen den dump. Ab und zu -rebuild scheint angebracht.
Parameter
  • "-batch" Löscht die bei Kategorienverschiebung übrig gebliebene Kategorie ohne Nachfrage.

category.py tidy

Which category do you want to tidy up? Regelindex
Script bietet lädt nacheinander alle Seiten aus der Kategorie und bietet Auswahlmöglichkeiten zum Verändern der Kategorie.

category.py move -from:"Index einer Publikation" -to:"Offizieller Index"

Script schiebt alle Artikel von einer Kategorie in eine andere. Praktisch wenn man Kategorien umbenennt.

category.py listify -from:"Programmieren" -to:"Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite"

Erstellt eine Liste der Artikel und Kategorien in Kategorie:Programmieren, die auf der Testseite gespeichert wird. Falls Seite schon vorhanden ist wird der Prozess abgebrochen.

category.py listify -overwrite -from:"Hörbuch" -to:"Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite"

Dasselbe, Liste wird allerdings ersetzt falls schon vorhanden.

category.py add

Links from which page should be processed? Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite
Category to add (do not give namespace): Datei
Von der angegebenen Seite werden alle Links gelesen. Man bekommt dann für jeden Artikel die Entscheidungsmöglichkeit, die angegebene Kategorie hinzuzufügen.

category.py remove -from:"Soloabenteuer"

Entfernt die Kategorie aus allen Seiten in der Kategorie.
Nach Entfernen versucht sich das Script mit einem Sysop-account einzuloggen und fragt dann ob die Kategorie gelöscht werden soll.

category.py tree

For which category do you want to create a tree view? Inoffiziell
Please enter the name of the file where the tree should be saved, or press enter to simply show the tree: tree.txt
Erstellt eine Baumansicht der gewählten Kategorie, wahlweise per Bildschirmausgabe oder als Ausdruck in eine Datei.
  1. Dateiausdruck funktioniert (mit tree.txt getestet, es wird ohne Nachfrage im Ordner pywikipediabot gespeichert)
  2. Bildschirmausdruck funktioniert ebenfalls, liefert aber auch nur einen Wikicode, den man abkopieren und auf einer Wikiseite speichern muss um ihn lesbar zu machen.

capitalize_redirects.py

python capitalize_redirects.py "-links:Benutzer:StipenTreublatt/Wiki Aventurica/StipBot/Testseite"

Funktioniert nicht:
Traceback (most recent call last):
  File "capitalize_redirects.py", line 179, in <module>
    main()
  File "capitalize_redirects.py", line 150, in main
    commandline_replacements.append(arg)
NameError: global name 'commandline_replacements' is not defined

python capitalize_redirects.py "-file:pages.txt"

Alle Links aus der Datei "pages.txt" (die im Ordner pywikipediabot liegen muss) werden als redirect auf sich selbst erstellt. Falls die verlinkte Seite schon vorhanden ist, wird ein redirect mit umgedrehter Großschreibung erstellt, also bspw "Chronik:1 bis 100 BF" -> "Chronik:1 bis 100 bf" ((Pseudo-)Namensraum wird natürlich nicht verändert). Falls die verlinkte Seite schon als redirect existiert, wird die Seite, auf die weitergeleitet wird, nach dem beschriebenen Muster behandelt.
Insgesamt also nicht sehr nützlich. Ich habe dieses Skript deswegen auch nur dazu missbraucht, etwa 100 neue Redirs anzulegen, da ich kein anderes Skript gefunden habe, das neue Seiten erstellt.

Benutzer:FalkBot/CalculateAverage.py

CalculateAverage.py "-cat:Aventurischer Bote"

Rechnet den Durchschnitt aller Bewertungsboxen in der Kategorie:Aventurischer Bote aus.

Benutzer:FalkBot/SetSortKeys.py

SetSortKeys.py -start:!

Setzt bei allen Artikeln des Wikis die Kategoriensortierung bei Artikeln mit Umlauten richtig.