Utilisateur:Dr Brains/RevertVandalBot.js

Une page de Wikipédia, l'encyclopédie libre.
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);
}