Utilisateur:Dr Brains/RevertVandalBot.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.if((mw.config.get('wgNamespaceNumber')==2)||(mw.config.get('wgNamespaceNumber')==3)){
var RevertVandalBot_VandalBotName = mw.config.get('wgTitle').replace(/\/.*/, "");
addOnloadHook(RevertVandalBot_AddLink);
}
function RevertVandalBot_AddLink(){
var Cactions = document.getElementById('p-cactions');
if(!Cactions) return;
var NewLink = '<li><a href="javascript:RevertVandalBot_GetContribs();" title="Lister les contributions non revertées de l\'utilisateur" >Révocation massive</a></li>';
Cactions.getElementsByTagName('ul')[0].innerHTML += NewLink;
}
function RevertVandalBot_GetContribs(Limit, ContribsPageTitle, ContribsPageId, ContribsContinue){
if(!Limit){
var TheLimit = prompt("Limite de contributions", 500);
if(TheLimit) TheLimit=parseInt(TheLimit);
if((TheLimit!="NaN")&&(TheLimit>0)) Limit = TheLimit;
else Limit = 500;
}
if(!ContribsPageTitle) ContribsPageTitle = new Array();
if(!ContribsPageId) ContribsPageId = new Array();
if(!ContribsContinue) ContribsContinue = "";
var Adresse = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&list=usercontribs&uclimit=499&ucprop=title|flags|ids&ucuser=' + RevertVandalBot_VandalBotName.replace(/&/g, "%26")+ContribsContinue;
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", Adresse, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState != 4 ) return;
var Response = NouvelleRequete.responseXML;
var Items = Response.getElementsByTagName('item');
for(var a=0;a<Items.length;a++){
var PageTitle = Items[a].getAttribute('title');
var PageId = Items[a].getAttribute('revid');
var PageIsTop = Items[a].getAttribute('top');
if((PageIsTop||PageIsTop=="")&&(ContribsPageTitle.length<Limit)){
ContribsPageTitle.push(PageTitle);
ContribsPageId.push(PageId);
}
}
var MustContinue = Response.getElementsByTagName("query-continue")[0];
if((MustContinue)&&(ContribsPageTitle.length<Limit)){
var ContinueText = "&ucstart="+MustContinue.getElementsByTagName('usercontribs')[0].getAttribute("ucstart");
RevertVandalBot_GetContribs(Limit, ContribsPageTitle, ContribsPageId, ContinueText)
}else{
RevertVandalBot_DisplayContribs(ContribsPageTitle, ContribsPageId);
}
}
NouvelleRequete.send(null);
}
function RevertVandalBot_DisplayContribs(ContribsPageTitle, ContribsPageId){
var Texte = "Les versions suivantes vont être révoquées :\n\n";
for(var a=0;a<ContribsPageTitle.length;a++){
Texte += "* " + ContribsPageTitle[a] + " - oldid : " + ContribsPageId[a] + "\n";
}
alert(Texte);
}