Benutzer:Schnark/js/autoedit
Das Skript Benutzer:Schnark/js/autoedit.js
stellt Funktionen zur Verfügung, mit denen man in einem Skript mehr oder weniger automatisch Seiten bearbeiten kann.
Die Funktionen liegen alle im Objekt mw.libs.autoedit
. Im Zweifelsfall ist dem Quellcode mehr Glauben zu schenken als dieser Dokumentation. Einige Funktionen funktionieren im Interface-Modus nicht, andere sind überhaupt nicht getestet.
Einzelne BearbeitungenBearbeiten
Alle Funktionen für eine einzelne Bearbeitungen erwarten ein JSON-Objekt als Parameter, das festlegt, was getan werden soll. Folgende Eigenschaften dieses Objekts gelten für alle Funktionen:
Parameter | Typ | Standardwert | Bedeutung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
title |
string |
aktuelle Seite | Name der betroffenen Seite | ||||||||
aktuelle Seite (ohne Namensraum) | Name des betroffenen Benutzers | ||||||||||
summary |
string |
Pflichtparameter | Bearbeitungskommentar etc. | ||||||||
method |
string |
'interface' |
'interface' für eine Bearbeitung über das normale Interface (erfordt meist Abspeichern von Hand), 'API' für eine Bearbeitung über die API
| ||||||||
newwindow |
number |
0 |
| ||||||||
callback |
function |
keine Callback-Funktion | Callback-Funktion, die mit dem Status als erstem und dem Titel als zweitem Parameter aufgerufen wird
|
Zurückgegeben wird false
bei einem falschen Aufruf, sonst true
.
Statt eine Funktion direkt aufzurufen kann man auch die edit
-Funktion aufrufen und zusätzlich edit
auf den Namen der eigentlich gewünschten Funktion setzen.
editBearbeiten
Die Funktion mw.libs.autoedit.edit
bearbeitet einzelne Seiten. Zusätzlich zu den obigen Parametern gibt es noch die folgenden:
Parameter | Typ | Standardwert | Bedeutung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
section |
number |
gesamter Artikel | Nummer des zu bearbeitenden Abschnitts | ||||||||
string |
'new' für neuen Abschnitt, 'last' für letzten Abschnitt, 'T-n' für den n-ten transkludierten Abschnitt
| ||||||||||
object |
{title: 'Foo' [, count: 2]} Abschnitt namens Foo [und zwar der zweite], {number: '1.2.3'} Abschnitt mit Nummer 1.2.3
| ||||||||||
change |
string |
Pflichtparameter | Text, der dem vorhandenen Text vorangestellt wird (bzw. neuer Text, falls bisher keiner vorhanden) | ||||||||
function |
Funktion, die mit dem alten Text aufgerufen wird (Leerstring, falls bisher keiner vorhanden) und den neuen Text zurückliefert oder false zum Abbruch
| ||||||||||
minor |
boolean |
false |
kleine Änderung? | ||||||||
action |
string |
'wpDiff' |
Falls über das Interface bearbeitet wird, wird die Seite mit den Änderungen …
| ||||||||
create |
boolean |
false |
soll die Seite erstellt werden, wenn sie nicht existiert? | ||||||||
transcluded |
boolean |
false |
soll eine andere Seite bearbeitet werden, wenn der angeforderte Abschnitt von einer anderen Seite stammt? |
Für die Callback-Funktion sind folgende Status zusätzlich möglich:
Status | Bedeutung |
---|---|
'missing' |
Seite nicht vorhanden, create == false
|
'missingsection' |
Abschnitt nicht vorhanden |
'transcluded' |
Abschnitt wird von anderer Seite eingebunden, transcluded == false , dritter Parameter ist der Name dieser Seite, vierter die Nummer des Abschnitts (mit führendem T-)
|
'nochange' |
change gab false zurück, dritter Parameter ist der alte Text
|
delBearbeiten
Die Funktion mw.libs.autoedit.del
löscht eine Seite.
blockBearbeiten
Die Funktion mw.libs.autoedit.block
(ent-)sperrt einen Benutzer. Zusätzlich zu den obigen Parametern gibt es noch die folgenden:
Parameter | Typ | Standardwert | Bedeutung |
---|---|---|---|
expiry |
string |
'infinite' |
Sperrdauer ('unblock' zum Entsperren)
|
anononly |
boolean |
true |
nur unangemeldete Benutzer sperren |
nocreate |
boolean |
false |
Erstellung von Benutzerkonten verhindern |
autoblock |
boolean |
false |
Autoblock einsetzen |
noemail |
boolean |
false |
E-Mail-Versand blockieren |
allowusertalk |
boolean |
true |
Schreibzugriff auf Diskussionsseite zulassen |
watchuser |
boolean |
true |
Benutzer beobachten |
protectBearbeiten
Die Funktion mw.libs.autoedit.protect
(ent-)schützt eine Seite. Zusätzlich zu den obigen Parametern gibt es noch die folgenden:
Parameter | Typ | Standardwert | Bedeutung |
---|---|---|---|
expiry |
string |
'infinite' |
Sperrdauer ('unprotect' zum Entsperren)
|
protections |
string |
'edit=autoconfirmed|move=autoconfirmed' |
Sperroptionen in der Form Art=Level , Pipe-separiert, 'move' steht für 'move=sysop' , 'sysop' für 'edit=sysop|move=sysop'
|
cascade |
boolean |
false |
Kaskadensperre |
moveBearbeiten
Die Funktion mw.libs.autoedit.move
verschiebt eine Seite. Zusätzlich zu den obigen Parametern gibt es noch die folgenden:
Parameter | Typ | Standardwert | Bedeutung |
---|---|---|---|
to |
string |
Pflichtparameter | Zielseite |
movetalk |
boolean |
true |
Diskussionsseite mitverschieben |
movesubpages |
boolean |
false |
Unterseiten mitverschieben |
noredirect |
boolean |
false |
Weiterleitung unterdrücken |
mailBearbeiten
Die Funktion mw.libs.autoedit.mail
schickte eine Email an einen Benutzer. Zusätzlich zu den obigen Parametern gibt es noch die folgenden:
Parameter | Typ | Standardwert | Bedeutung |
---|---|---|---|
text |
string |
Pflichtparameter | Text der E-Mail |
ccme |
boolean |
false |
Kopie an sich selbst verschicken |
revertBearbeiten
Die Funktion mw.libs.autoedit.revert
revertiert eine Änderung. Zusätzlich zu den obigen Parametern gibt es noch die folgenden:
Parameter | Typ | Standardwert | Bedeutung |
---|---|---|---|
revert |
object |
Pflichtparameter | siehe unten |
forceapi |
boolean |
false |
bei method == 'API' Benutzung der API erzwingen, verhindert automatische Sichtung
|
Über revert
wird ein Objekt angegeben, das festlegt, was revertiert werden soll (genau einer der folgenden Parameter als Eigenschaft):
Parameter | Inhalt | Bedeutung |
---|---|---|
rollback |
Name des zurückzusetzenden Benutzers | führt ein Rollback durch, erfordt das Rollback-Recht, speichert automatisch |
fakerollback |
Name des zurückzusetzenden Benutzers | simuliert ein Rollback |
reset |
Versionsnummer | setzt auf alte Version zurück |
undo |
Versionsnummer | revertiert diese Änderung bzw. alle bis undoafter
|
Mehrere BearbeitungenBearbeiten
masseditBearbeiten
Die Funktion mw.libs.autoedit.massedit
bearbeitet eine Reihe von Seiten. Bevor du damit einen Bot betreibst, liest du dir WP:BOT durch und sagst mir Bescheid.
Die Parameter sind in dieser Reihenfolge
Parameter | Typ | Standardwert | Bedeutung |
---|---|---|---|
titles |
array |
Pflichtparameter | Liste der Titel, die bearbeitet werden sollen |
param |
object |
Pflichtparameter | Objekt wie für edit , title und callback werden automatisch gesetzt, wird für method ein von 'API' (Standard) abweichender Wert gewählt, muss newwindow auf > 0 gesetzt werden
|
function |
Funktion, die mit dem Titel aufgerufen wird und ein Objekt wie oben zurückliefert | ||
callback |
function |
keine Callback-Funktion | wird mit der Anzahl aller Titel, der Anzahl der erfolgreichen Bearbeitungen, einem Array der fehlgeschlagenen Bearbeitungen und einem Objekt der Form {'Titel': 'status'} aufgerufen
|
delay |
number |
12 | Zeit in Sekunden zwischen zwei Bearbeitungen |
Um zu funktionieren muss jquery.async
eingebunden werden, etwa durch mw.loader.using('jquery.async', meine_tolle_funktion_die_dann_loslegt);
.
edit_seriesBearbeiten
Die Funktion mw.libs.autoedit.edit_series
bearbeitet eine Reihe von Seiten nacheinanber, beim ersten Fehler wird abgebrochen. Gedacht ist dies etwa für das Einfügen eines Löschantrags im Artikel, dem Eintrag auf der aktuellen LA-Seite und der Benachrichtigung des Erstellers.
Die Parameter sind in dieser Reihenfolge
Parameter | Typ | Standardwert | Bedeutung |
---|---|---|---|
params |
array |
Pflichtparameter | Liste der Parameter in JSON-Notation für autoedit.edit
|
autosave |
boolean |
Pflichtparameter | sollen alle Bearbeitungen automatisch gespeichert werden? |
array |
Liste mit dieser Entscheidung für jede Seite aus params einzeln
| ||
callback |
function |
keine Callback-Funktion | wird mit dem Resultat der letzten Bearbeitung und der Anzahl aller Bearbeitungen aufgerufen |
replace_last |
boolean |
false |
letzte Bearbeitung wird im aktuellen Fenster durchgeführt, Callback-Funktion wird im Erfolgsfall dann nicht aufgerufen |
Quick&Dirty-Lösung um mehreren Benutzern eine Nachricht zu hinterlassenBearbeiten
Das Skript kann verwendet werden, wenn man schnell einer größeren Anzahl von Benutzern einen Hinweis auf die Diskussionsseite setzen möchte:
- 1. Aktiviere in deinen Einstellungen die neue Werkzeugleiste.
- 2. Öffne Spezial:Meine Benutzerseite/völlig beliebiger Name.js zum Bearbeiten.
- 3. Kopiere den Quelltext von Benutzer:Schnark/js/autoedit.js dort hin.
- 4. Füge am Ende vor der Zeile
})(jQuery);
folgenden Code ein:
var list = ['PASS', 'MICH', 'AN'];
for (var i = 0; i < list.length; i++) {
list[i] = 'Benutzer Diskussion:' + list[i];
}
var title = 'PASS MICH AN';
var text = 'Hallo {{ers:SEITENNAME}}!\nPASS MICH AN Viele Grüße --~~~~';
autoedit.massedit(list, {change: text, section: 'new', summary: title, create: true})
- Dabei sollte
list
die Benutzernamen (ohneBenutzer:
oderBenutzer Diskussion:
enthalten,title
die Betreffzeile undtext
den Text.
- Dabei sollte
- 5. Klicke auf Vorschau.
- 6. Warte. In einem anderen Tab kannst du deine eigenen Beiträge nachverfolgen. Sobald das Skript alle Benutzer informiert hat, kannst du das Tab ohne zu speichern schließen.
AlternativenBearbeiten
Alternativen zu meinem Skript sind Benutzer:D/monobook/api.js und Benutzer:Ireas/düp-helperfunctions-monobook.js.
CodeBearbeiten
Der Javascript-Code befindet sich unter Benutzer:Schnark/js/autoedit.js und wird in Benutzer:Schnark/js/autoantraege.js verwendet.