Utente:Alex brollo/indexReader.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.
// legge la pagina Autore attiva ed estrae la lista delle pagine Indice linkate
function lpa() {
var l;
var li=[];
l=$("a[href^='/wiki/Indice:']");
for (i=0;i<l.length;i+=1) {
li.push(l.eq(i).attr("title"));
}
return li;
} // test:OK
function getIndexData(titolo) {
var campi=["Autore", "NomePagina", "Titolo", "TitoloOriginale", "Sottotitolo", "LinguaOriginale", "Lingua", "Traduttore", "Illustratore", "Curatore", "Editore",
"Città", "Anno", "Fonte", "Immagine", "Progetto", "Argomento", "Qualità"];
var testo="";
var mwTemplate="";
var risultato=[titolo];
testo=$.ajax({
url: 'https://it.wikisource.org/w/api.php',
data: {
format: 'json',
action: 'parse',
prop:"wikitext",
page: titolo,
contentmodel: "proofread-page"
},
async:false // this is the important one!
}).responseText;
testo=JSON.parse(testo);
testo=testo.parse.wikitext["*"];
// console.log(testo); OK
mwTemplate=parseTemplate(":MediaWiki:Proofreadpage_index_template", testo);
// console.log(mwTemplate);
for (i=0;i<campi.length; i+=1) {
risultato.push(mwTemplate[0][campi[i]]);
}
risultato=risultato.join("\t");
console.log(risultato);
return risultato;
}
// funzione main, da lanciare in pagina Autore
function produciTabella() {
var campi=["Indice","Autore", "NomePagina", "Titolo", "TitoloOriginale", "Sottotitolo", "LinguaOriginale", "Lingua", "Traduttore", "Illustratore", "Curatore", "Editore",
"Città", "Anno", "Fonte", "Immagine", "Progetto", "Argomento", "Qualità"];
var tabella=[campi.join("\t")];
var listaIndici=lpa();
console.log(listaIndici);
for (j=0;j<listaIndici.length; j+=1) {
tabella.push(getIndexData(listaIndici[j]));
}
return tabella.join("\n");
}