User:Alex brollo/wip.js
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];
}