Benutzer:StipenTreublatt/Bot: Unterschied zwischen den Versionen

aus Wiki Aventurica, dem DSA-Fanprojekt
KKeine Bearbeitungszusammenfassung
Zeile 33: Zeile 33:


==delete.py==
==delete.py==
*-page:      Delete specified page
*-cat:        Delete all pages in the given category.
*-nosubcats:  Don't delete pages in the subcategories.
*-links:      Delete all pages linked from a given page.
*-file:      Delete all pages listed in a text file.
*-ref:        Delete all pages referring from a given page.
*-images:    Delete all images used on a given page.
*-always:    Don't prompt to delete pages, just do it.
*-undelete:  Actually undelete pages instead of deleting. Obviously makes sense only with -page and -file.


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

Version vom 4. November 2009, 08:22 Uhr

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

(leider nicht mehr unterstützt, obwohl es nützlich wäre manchmal) 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

  • -page: Delete specified page
  • -cat: Delete all pages in the given category.
  • -nosubcats: Don't delete pages in the subcategories.
  • -links: Delete all pages linked from a given page.
  • -file: Delete all pages listed in a text file.
  • -ref: Delete all pages referring from a given page.
  • -images: Delete all images used on a given page.
  • -always: Don't prompt to delete pages, just do it.
  • -undelete: Actually undelete pages instead of deleting. Obviously makes sense only with -page and -file.

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
  • "-regex" Der angegebene Such- und Ersetze-String wird als RegularExpression angesehen.
  • "-summary:" Der Bearbeitungskommentar. Pflichtangabe, da der automatische Botkommentar für Laien nichtssagend ist.
  • "-always" Führt die angegebenen Ersetzungen ohne Nachfrage aus. Sollte nur bei vorher getesteter Regex benutzt werden.
Parameter
  • "-page:" Bearbeitet die angegebene Seite.
  • "-cat:" Bearbeitet die Artikel in der gegebenen Kategorie.
  • "-catr:" Bearbeitet die Artikel in der gegebenen Kategorie und allen untergeordneten Kategorien, sowie deren Unterkategorien usw.
  • "-links:" Bearbeitet alle Artikel, die von der gegebenen Seite verlinkt sind.
  • "-ref:" Bearbeitet alle Artikel, die einen Link auf die gegebene Seite enthalten.
  • "-subcats:" Bearbeitet die Unterkategorien der gegebenen Kategorie.
  • "-addcat:" Fügt auf allen geänderten Seiten die angegebene Kategorie hinzu.
  • "-xml:" Bearbeitet alle im XML-Dump gegebenen Seiten. Der Dump wird im Ordner pywikipediabot erwartet.

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.

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 -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 -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 "-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.

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.