Benutzer:StipenTreublatt/Bot

aus Wiki Aventurica, dem DSA-Fanprojekt
Was kann man ändern?
Mit replace.py kann man so ziemlich alles machen (Beispiele), man muss es jedoch selbst programmieren; für häufige Aufgaben gibt es daher Skripte, die das komfortabler erledigen.
category.py move -from:"A" -to:"B" Verschiebe Kategorie A samt Inhalt nach Kategorie B
category.py remove -from:"A" Kategorie A wird geleert und gelöscht
add_text.py -cat:"A" -text:"B" -except:"C" -up Fügt am Anfang aller Seiten der Kategorie A den Text B hinzu, außer auf der Seite steht C
template.py "A" "B" Vorlage A wird durch Vorlage B ersetzt
template.py -remove "A" Vorlage A wird entfernt
redirect.py double Doppelte Weiterleitungen werden repariert, mit Änderungsnachfrage.
redirect.py broken Weiterleitungen auf nicht vorhandene Seiten werden nach Bestätigung gelöscht.
Wie kann man zu bearbeitende Artikelgruppen auswählen?
cat:A Alle Artikel der Kategorie A
catr:A wie cat, zusätzlich alle Artikel aller enthaltenen Unterkategorien
subcats:A Alle Unterkategorieseiten der Kategorie A
subcatsr:A wie subcats, zusätzlich alle Unterkategorien der Unterkategorien
uncat Alle nicht-kategorisierten Artikel
uncatcat Alle nicht-kategorisierten Kategorien
uncatfiles Alle nicht-kategorisierten Dateien
uncattemplates Alle nicht-kategorisierten Vorlagen
links:A Alle Seiten, die von der Seite A verlinkt sind
imagelinks:A Alle Dateien, die von der Seite A verlinkt sind
newimages:x Die x neuesten Dateien (Standard 100)
new:x Die x neuesten Artikel (Standard 60)
recentchanges:x Die x zuletzt geänderten Seiten (Standard 100)
ref:A Alle Seiten, die auf A verlinken
start Alle Artikel des Wikis
start:A Alle Artikel des Wikis ab dem Eintrag A
start:Namensraum:! Alle Seiten des Wikis im Namensraum
transcludes:Vorlage:A Alle Seiten, die Vorlage A verwenden
unusedfiles Alle nicht verwendeten Dateien
unwatched Alle nicht beobachteten Artikel
usercontribs:A;x x Seiten, die von Benutzer:A geändert wurden (Standard 250)
weblink:url Alle Seiten, die einen Link auf url beinhalten
redirectonly Alle Weiterleitungen des Wikis
redirectonly:A Alle Weiterleitungen des Wikis ab dem Eintrag A
redirectonly:Namensraum:! Alle Weiterleitungen des Namensraums
page:A Nur die Seite A


Auftragsliste

Benutzer:StipenTreublatt/Bot/Aufträge

Dieser Bot
Links
Merkliste
  • [1]
  • Parameter -help liefert oft eine Erklärung des Skriptes
  • Mit dem Parameter -summary:"" kann man eine eigene Zusammenfassung der Änderung eingeben. Damit wird die Versionsgeschichte der geänderten Artikel nicht zu sehr zugemüllt.
  • Wichtig:Bei Artikelnamen mit Leerzeichen als Parameter muss ein _ das Leerzeichen ersetzen, sonst wird der Teil des Namens nach dem Leerzeichen als weiterer Parameter übernommen.
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

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/Bot/Testseite" -always

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

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

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

delete.py -undelete -file

Enter name of file to delete pages from: undelete.txt

template.py

  • -remove: Remove every occurence of the template from every article
  • -subst: Resolves the template by putting its text directly into the article.
  • -xml: retrieve information from a local dump. If this argument isn't given, info will be loaded from the maintenance page of the live wiki. Argument can also be given as "-xml:filename.xml".
  • -namespace: Only process templates in the given namespace number (may be used multiple times).
  • -summary: Lets you pick a custom edit summary. Use quotes if edit summary contains spaces.
  • -always: Don't bother asking to confirm any of the changes, Just Do It.
  • -category: Appends the given category to every page that is edited. This is useful when a category is being broken out from a template parameter or when templates are being upmerged but more information must be preserved.

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:NAME}} 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:Spielerheld den Text "{{SC}}" am Anfang der Seite hinzu.

add_text.py -catr:"Offizielle Publikation" -text:"[[Kategorie:Publikationsindex-{{subst:#sub:{{subst:PAGENAME}}|0|1}}]]" -except:"Kategorie:Publikationsindex" -summary:"Hinzufügen der Kat:Publikationsindex"

Fügt allen Artikeln in Kategorie:Offizielle Publikation und Unterkategorien die passende Kategorie:Publikationsindex hinzu, falls noch keine Publikationsindex-Kat vorhanden ist.

movepages.py

python movepages.py "-pairs:E:\Programme\Python26\pywikipediabot\move.txt"

Führt die in der Datei angegebenen Verschiebungen durch. Die Verschiebungen sind dabei im Format "[[alt]] [[neu]]" gegeben.
BUG: Nur ca. 50 Verschiebungen aus der Datei werden durchgeführt, der Rest ohne Fehlermeldung ignoriert.

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. BUG: Links auf Bildbeschreibungsseiten werden ignoriert.
  • "-ref:" Bearbeitet alle Artikel, die einen Link auf die gegebene Seite enthalten.
  • "-subcats:" Bearbeitet die Unterkategorien der gegebenen Kategorie.
  • "-weblink:" Bearbeitet alle Seiten, die den angegebenen Weblink enthalten.
  • "-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 Aufrufe findet man auf einer Unterseite

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/Bot/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/Bot/Testseite"

Dasselbe, Liste wird allerdings ersetzt falls schon vorhanden.

category.py add

Links from which page should be processed? Benutzer:StipenTreublatt/Bot/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.

pagefromfile.py

python pagefromfile.py -file:"pages.txt" -summary:"Erzeuge Widerspruchslisten"

Die Datei "pages.txt" im Verzeichnis "pywikipediabot" wird eingelesen und daraus neue Seiten erstellt. Das erwartete Format ist: {{-start-}}Text'''Seitentitel'''Text{{-stop-}}
Die Start- und Stop-Markierung wird nicht in den neuen Artikel übernommen, "Seitentitel" zeigt den Namen der neuen Seite an (recht unpraktisch, wenn man den Namen der neuen Seite nicht auf der Seite stehen haben möchte).
  • "-include" Die Start- und Endmarkierung soll in den Artikel mitaufgenommen werden.
  • "-start:XXX" Suche statt "{{-start-}}" nach "XXX"
  • "-end:XXX" Suche statt "{{-stop-}}" nach "XXX"
  • "-titlestart:XXX" Statt ''' als Markierung für den Beginn des Seitentitels wird nach "XXX" gesucht
  • "-titleend:XXX" Statt ''' als Markierung für das Ende des Seitentitels wird nach "XXX" gesucht

capitalize_redirects.py

python capitalize_redirects.py "-links:Benutzer:StipenTreublatt/Bot/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.
Scheint neuerdings auch nicht mehr zu funktionieren.--Stip (Diskussion) 18:23, 20. Apr. 2010 (CEST)

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.

Nicht mehr vorhanden

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