Utente:Valepert/viewers.js
Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.
Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.
function viewers() {
var xhr = new XMLHttpRequest();
var sum;
var err;
const async = true;
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
if ( xhr.status == 200 ) {
week = JSON.parse(xhr.responseText);
daily = week.items.map(function(i) {return i.views;});
sum = daily.reduce(function(p, c) { return p + c; }, 0);
show(sum);
} else {
err = JSON.parse(xhr.responseText).detail;
error(err);
}
}
};
today = new Date();
lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);
start = lastWeek.toISOString().slice(0, 10).replace(/-/g, '');
end = today.toISOString().slice(0, 10).replace(/-/g, '');
xhr.open('GET', 'https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/it.wikipedia.org/all-access/user/' + mw.config.get("wgPageName") + '/daily/' + start + '/' + end, async);
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(null);
}
if (!mw.config.get("wgNamespaceNumber")) {
$("#contentSub").append('<button id="viewersBtn" type="button" onclick="viewers()">👀</button>');
}
function show(value) {
$("#viewersBtn").hide();
$("#contentSub").append(' (' + value + ')');
}
function error(text) {
$("#viewersBtn").hide();
alert(text);
}