MediaWiki:DataUltimaRevisione.js
Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
- Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
- Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
- Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
- Opera: premi Ctrl-F5.
/* <pre> */
function getElementsByClass(cls, tag, doc)
{
allElements = doc.getElementsByTagName(tag);
var i = 0;
arr = new Array();
for(i = 0; i<allElements.length; i++) {
if(allElements[i].className == cls) arr.push(allElements[i]);
}
return arr;
}
function cercaRevDate()
{
cercatoreRevDate = new revDateCatcher();
cercatoreRevDate.onRevDateCatched = inserisciRevDate;
var dates = getElementsByClass('revisionDate', 'span', document); // Prende tutti gli elementi che hanno come classe "revisionDate"
if(!dates.length) return;
var i;
for(i in dates)
{
var page = dates[i].innerHTML;
dates[i].className='revDate_' + page;
dates[i].innerHTML='';
cercatoreRevDate.aggiungiPagina(page);
}
cercatoreRevDate.avanzaCoda();
}
function inserisciRevDate(page, data)
{
var elms = getElementsByClass('revDate_' + page, 'span', document);
var elm;
var i;
for(i=0; i<elms.length; i++)
{
elm = elms[i];
dataText = document.createTextNode(data);
elm.appendChild(dataText)
}
}
function dateCatcherStatoCambiato()
{
cercatoreRevDate.processa();
}
function revDateCatcher()
{
this.coda = new Array();
this.xhttpreq = null;
this.currentPage = null;
this.createRequest = createRequest;
this.aggiungiPagina = addPage;
this.avanzaCoda = initRequest;
this.processa = processRequest;
this.onRevDateCatched = null;
function createRequest()
{
try {
this.xhttpreq = new XMLHttpRequest();
} catch(exc) {
try {
this.xhttpreq = new ActiveXObject('Msxml2.XMLHTTP');
} catch(exc) {
try {
this.xhttpreq = new ActiveXObject('Microsoft.XMLHTTP');
} catch(exc) {
this.xhttpreq = null;
}
}
}
}
function addPage(inputPage)
{
if(this.coda.indexOf(inputPage) != -1) return; // Se l'ho già messa, la salto!
this.coda.push(inputPage);
}
function initRequest()
{
if(this.coda.length == 0) return;
this.createRequest();
this.xhttpreq.open('GET', '/w/api.php?action=query&prop=revisions&titles=' + this.coda[0] + '&rvprop=timestamp&format=json', true);
this.xhttpreq.onreadystatechange = dateCatcherStatoCambiato;
this.xhttpreq.send('');
this.currentPage = this.coda[0];
this.coda.shift();
}
function processRequest()
{
if(this.xhttpreq.readyState == 4) {
var txtresp = this.xhttpreq.responseText;
var dateregexp = /"timestamp":"(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z"/;
var match = dateregexp.exec(txtresp);
var curRevTimestamp = match[3] + '.' + match[2] + '.' + match[1] + ', ' + match[4] + ':' + match[5] + ':' + match[6];
this.onRevDateCatched(this.currentPage, curRevTimestamp);
this.avanzaCoda();
}
}
}
$(document).ready(cercaRevDate);
/* </pre> */