Wikizionario:Monobook.js/Requisiti.js

//

//Questo script serve per verificare i requisiti di voto di //un utente. Chiede il nome utente da verificare e restituisce

//*Data di registrazione dell'utente
//*Data del primo edit
//*Data del 50esimo edit
//*Data del 500esimo edit



function FaiIlConto()
{
  var nomeUtente=window.prompt("Quale utente devi controllare?");
  
  if (nomeUtente == '')
    return;

  wpajax.http({url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&letype=newusers&action=query&list=logevents&leuser='+nomeUtente, onSuccess: IscrittoIl, nomeUtente: nomeUtente});
}

function IscrittoIl(xmlreq, data)
{
  var api = xmlreq.responseXML;
  if (api.firstChild.nodeName == "error") return;

  var nomeUtente = data.nomeUtente;

  members = api.getElementsByTagName('item');
  
  if (members.length == 0)
  {
    alert("L'utente non sembra esistere");
	return;
  }
  
  dataRegistrazioneTemp = members[members.length-1].getAttribute('timestamp');
  
  // estrai i dati
  wpajax.http({url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&uclimit=500&ucstart='+dataRegistrazioneTemp+'&ucdir=newer&action=query&list=usercontribs&ucuser='+nomeUtente, onSuccess: estraiDati, nomeUtente: nomeUtente, dataRegistrazioneTemp: dataRegistrazioneTemp});
}

function estraiDati(xmlreq, data)
{
  var api = xmlreq.responseXML;
  if (api.firstChild.nodeName == "error") return;
 
  members = api.getElementsByTagName('item');
  
  var nomeUtente = data.nomeUtente;
  var dataRegistrazioneTemp = data.dataRegistrazioneTemp;
  
  primaModificaTemp = members[0].getAttribute('timestamp');
  if (members.length >= 50)
    cinquantesimaModificaTemp = members[49].getAttribute('timestamp');
  else
    cinquantesimaModificaTemp = 0;
  if (members.length >= 500)
    cinquecentesimaModificaTemp = members[499].getAttribute('timestamp');
  else
    cinquecentesimaModificaTemp = 0;

  //fix formato date
  var monthname=new Array();
  monthname['01']="gen";
  monthname['02']="feb";
  monthname['03']="mar";
  monthname['04']="apr";
  monthname['05']="mag";
  monthname['06']="giu";
  monthname['07']="lug";
  monthname['08']="ago";
  monthname['09']="set";
  monthname['10']="ott";
  monthname['11']="nov";
  monthname['12']="dic";
  	
  primaModifica = ""+new Number(primaModificaTemp.substr(8,2))+" "+monthname[primaModificaTemp.substr(5,2)]+" "+primaModificaTemp.substr(0,4)+" alle "+primaModificaTemp.substr(11,2)+":"+primaModificaTemp.substr(14,2)+":"+primaModificaTemp.substr(17,2);
  if (cinquantesimaModificaTemp != 0)
    cinquantesimaModifica = ""+new Number(cinquantesimaModificaTemp.substr(8,2))+" "+monthname[cinquantesimaModificaTemp.substr(5,2)]+" "+cinquantesimaModificaTemp.substr(0,4)+" alle "+cinquantesimaModificaTemp.substr(11,2)+":"+cinquantesimaModificaTemp.substr(14,2)+":"+cinquantesimaModificaTemp.substr(17,2);
  if (cinquecentesimaModificaTemp != 0)
    cinquecentesimaModifica = ""+new Number(cinquecentesimaModificaTemp.substr(8,2))+" "+monthname[cinquecentesimaModificaTemp.substr(5,2)]+" "+cinquecentesimaModificaTemp.substr(0,4)+" alle "+cinquecentesimaModificaTemp.substr(11,2)+":"+cinquecentesimaModificaTemp.substr(14,2)+":"+cinquecentesimaModificaTemp.substr(17,2);
  dataRegistrazione = ""+new Number(dataRegistrazioneTemp.substr(8,2))+" "+monthname[dataRegistrazioneTemp.substr(5,2)]+" "+dataRegistrazioneTemp.substr(0,4)+" alle "+dataRegistrazioneTemp.substr(11,2)+":"+dataRegistrazioneTemp.substr(14,2)+":"+dataRegistrazioneTemp.substr(17,2);
  
  toPrint = "Analisi requisiti di \""+nomeUtente+"\":\n\nRegistrazione: "+dataRegistrazione+"\nPrima modifica: "+primaModifica+"\n50esima modifica: ";
  toPrint += (members.length >= 50)?cinquantesimaModifica:"l'utente ha fatto solo "+members.length+" modifiche";
  toPrint += "\n500esima modifica: ";
  toPrint += (members.length >= 500)?cinquecentesimaModifica:"l'utente ha fatto solo "+members.length+" modifiche";
  
  alert(toPrint);
}

$(function () {
  var navbar = 'p-navigation';
  nome = "Verifica requisiti di voto";
  link = "javascript:FaiIlConto()";

  //Aggiungo il link
  mw.util.addPortletLink(navbar, link, nome, '');
})
//