User:Alex brollo/wip.js

From Wikisource
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// da qualsiasi pagina carica in localStorage.currentIndex il primo Index linkato con la pagina
// se non vi sono link a Index lascia invariato
(function () {
	var currentIndex="";
        try {
	   var bltitle=mw.config.get("wgPageName");
	   var blnamespace="112";
	   var api_url=["/w/api.php?action=query",
             "format=json",
             "list=backlinks",
             "blnamespace="+blnamespace,
             "bltitle="+bltitle,
             "redirects="].join("&");
	    var result=JSON.parse($.ajax({url:api_url,async:false}).responseText);
	    currentIndex=result.query.backlinks.filter(function (value) {
  return value.title.indexOf("Index:")===0;
})[0].title;
            if (localStorage.currentIndex===undefined || localStorage.currentIndex!==currentIndex) localStorage.currentIndex=currentIndex;

		}
	catch(err) {
	    return false;
	}
})();

function parseLivre(livre) {
	var pdxpc = []; // pdxpc è una lista semplice in cui la pagina djvu è l'indice
	var pd = ""; // pd è pagina djvu 
	var pc = ""; // pc è pagina cartacea
 
	// lettura dell'html della pagina Indice corrispondente a base
	html = $.ajax({
		url: "/w/index.php?action=render&title=" + livre,
		async: false
	}).responseText;
 
	// estrazione della lista dei link alle pagine
	var links = $(".pagineDellEdizione a", $(html)); // 
 
	// estrazione di pd e pc dai link e assegnazione a una lista in cui l'indice è pd e il valore è pc
	for (i = 0; i < links.length; i += 1) {
		pd = eval($(links[i]).attr("title").match(/\/(\d+) */)[1]);
		pc = $.trim($(links[i]).text().match(/^0*(.+)/)[1]);
		pdxpc[pd] = pc;
 
	}
 
	// la lista viene popolata con stringhe vuote se vi sono dei "buchi"
	for (i = 1; i < pdxpc.length - 1; i += 1) {
		if (pdxpc[i] === undefined) pdxpc[i] = "";
	}
    // costuisco un array a chiave con chiave pc
	var pcxpd={};
	for (i = 1; i < pdxpc.length - 1; i += 1) {
		pcxpd[pdxpc[i]]=i;
	}
	var linksc=$(".tableItem",  $(html));
	var itemList=[];
	for (var item=0; item<linksc.length; item+=1){
 
		itemEl={};
		itemEl.ns0Name=$("a",linksc.eq(item)).first().attr("title").replace(" (tuttora non scritto)","");
		itemEl.ns0Title=$("a",linksc.eq(item)).first().text();
		itemEl.PageName=$("a",linksc.eq(item)).last().attr("title").replace(" (tuttora non scritto)","");
		itemEl.PageTitle=$("a",linksc.eq(item)).last().text();
		itemList.push(itemEl);
	}
	return [pcxpd,itemList];
}