MediaWiki:Gadget-trovaTestiSenzaPages.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.
$(function() {
trovaTestiSenzaPages = function(elencoTesti, cont) {
console.log("Carica Pagine ns0 con versione cartacea a fronte da " + cont);
var api = new mw.Api();
params = {
action: 'query',
format: 'json',
list: 'categorymembers',
cmnamespace: '0',
cmtype: 'page',
cmlimit: 5000,
cmtitle: 'Categoria:Pagine ns0 con versione cartacea a fronte',
};
if (cont)
params.cmcontinue = cont;
api.post(params).done(function (data, textStatus, jqXHR) {
elencoTesti = this.elencoTesti;
if (data.query && data.query.categorymembers) {
for (var i = 0; i < data.query.categorymembers.length; i++) {
elencoTesti.push(data.query.categorymembers[i].title);
}
}
if (data.continue) {
trovaTestiSenzaPages(elencoTesti, data.continue.cmcontinue);
} else {
$('#titoliTotale').html(elencoTesti.length);
$('.trova-titoli-box-main').append('<ol>');
elencoTesti.forEach(function(t, j) {
setTimeout(function() {
api.get({
action: 'parse',
format: 'json',
prop: 'wikitext',
page: t
}).done(function (data, textStatus, jqXHR) {
testo = data.parse.wikitext["*"];
if (testo && testo.indexOf("<pages") == -1 && testo.toLowerCase().indexOf("{{taf|") == -1 && testo.toLowerCase().indexOf("{{testi a fianco|") == -1) {
link = '<a target="_new" href="/wiki/' + data.parse.title + '">' + data.parse.title + '</a>';
$('.trova-titoli-box-main ol').append('<li>' + link + '</li>');
}
count = parseInt($('#titoliCount').html()) + 1;
totale = parseInt($('#titoliTotale').html());
$('#titoliCount').html(count);
$('#titoliPerc').html((count / totale * 100).toFixed(0));
});
}, j * 10);
});
}
});
};
mw.util.addPortletLink(
'p-tb',
'#',
'Trova testi senza pages',
't-trovaTestiSenzaPages',
"Trova testi che dovrebbero usare il tag pages ma non ce l'hanno"
);
termina = function() {
$('.trova-titoli-box-main .loader').html('- terminato.').removeClass('loader');
$('#stopTrovaTestiSenzaPages').remove();
};
$('#t-trovaTestiSenzaPages').click(function(e) {
e.preventDefault();
$('.trova-titoli-box').remove();
var box = '<div class="box trova-titoli-box">'
+ '<div class="box-title">Trova testi senza pages<span class="icon-close"></span></div>'
+ '<div class="box-main trova-titoli-box-main"></div></div>';
$("body").append(box);
$('.trova-titoli-box').draggable();
$('.trova-titoli-box').draggable('option', 'cancel', '.box-main');
$('.trova-titoli-box-main').append('<p>Caricamento titoli: <span id="titoliCount">0</span> di <span id="titoliTotale">n.d.</span> (<span id="titoliPerc">0</span>%)</p>');
$('.trova-titoli-box .icon-close').click(function() {
$('.trova-titoli-box').remove();
});
elencoTesti = [];
trovaTestiSenzaPages(elencoTesti);
});
});