Utente:Alex brollo/indexReader.js

Da Wikisource.

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");
}