Utente:Alex brollo/ipt.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.
/*lista prefissi pagine ipt */
/* creazione oggetto globale per debugging */
ipt={};
ipt.pList=["It","Mul","Fr","En","La","El","Ru","Bn","Nap"];
(function() {
// console.log("ipt versione 21.08 01")
// conversione numero da bengali a arabo
function b2a(numero) {
var bn="০১২৩৪৫৬৭৮৯";
var ar="";
numero=numero+"".split("");
for (i=0;i<numero.length;i+=1) {
ar+=bn.indexOf(numero[i])+"";
}
return ar;
}
// conversione numero da arabo a bengali
function a2b(numero) {
var bn="০১২৩৪৫৬৭৮৯".split("");
var br="";
numero=(numero+"").split("");
for (i=0;i<numero.length;i+=1) {
br+=bn[numero[i]];
}
return br;
}
// aritmetica bengali: b=numero bengali; op=operatore; a=secondo operando numerico
function aritB(b,op,a) {
var bConv=b2a(b)*1;
switch(op) {
case "+": bConv=bConv+a; break;
case "-": bConv=bConv-a; break;
case "*": bConv=bConv*a; break;
case "%": bConv=bConv%a; break;
case "**": bConv=bConv**a; break;
}
return a2b(bConv);
}
function nav(azione) {
var pgnameEl=/(\w+wikisource:)(.+?)(:.+)(\/)([0-9০-৯]+)/.exec(mw.config.get("wgPageName"));
var url="https://it.wikisource.org/wiki/";
if (pgnameEl[1]=="Bnwikisource:") {
if (azione=="next") pgnameEl[5]=aritB(pgnameEl[5],"+",1);
if (azione=="previous") pgnameEl[5]=aritB(pgnameEl[5],"-",1);
} else {
if (azione=="next") pgnameEl[5]=pgnameEl[5]*1+1;
if (azione=="previous") pgnameEl[5]=pgnameEl[5]*1-1;
}
if (azione=="up") {
pgnameEl[2]="Index";
pgnameEl[4]="";
pgnameEl[5]="";
}
url+=pgnameEl.slice(1).join("");
window.location.href=url;
}
function addArrows() {
$(".navigation_arrows").append($('<img id="nav_left" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Arrleft.svg/25px-Arrleft.svg.png" title="previous page"><img id="nav_right" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Arrright.svg/25px-Arrright.svg.png" title="next page"><img id="nav_up" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Arrup.svg/25px-Arrup.svg.png" title="index page">'));
$("#nav_left").click(function() {nav("previous");});
$("#nav_right").click(function() {nav("next");});
$("#nav_up").click(function() {nav("up");});
}
function preload() {
// console.log("Chiamata funzione load");
// elimina eventuale messaggio pagina vuota
$(".noarticletext").remove();
var pagina=/(\w+)wikisource:(.+)/.exec(mw.config.get("wgPageName"));
// pagina[1] contiene il prefisso progetto, pagina[2] il nome della pagina
pagina[1]=pagina[1].toLocaleLowerCase();
// costruisco e aggiungo il warning
var template="{{sharedwikisourcepage|#1|#2|#3}}"
.replace("#1",pagina[1])
.replace("#2",pagina[2])
.replace("#3",mw.config.get("wgUserLanguage"));
console.log(pagina);
$.ajax({
url: 'https://it.wikisource.org/w/api.php',
data: {
format: 'json',
action: 'parse',
prop: 'text',
text: template,
contentmodel: 'wikitext'
},
dataType: 'jsonp' // this is the important one!
}).done(function(data) {
ipt.warning=$(data.parse.text["*"]);
// carico il css
ipt.css='https://%1.wikisource.org/w/index.php?title=MediaWiki:Common.css&action=raw&ctype=text/css'.replace("%1",pagina[1]);
// ipt.css='https://' + pagina[1] + '.wikisource.org/w/load.php?debug=false&lang=' + pagina[1] + '&modules=site&only=styles&skin=vector" type="text/css" media="all" />';
if (pagina[1]==="mul") ipt.css=ipt.css.replace("https://mul.wikisource.org","https://wikisource.org");
$('<link>')
.appendTo('head')
.attr({
type: 'text/css',
rel: 'stylesheet',
href: ipt.css
});
load(pagina[1],pagina[2]);
});
}
function load(progetto, titolo) {
var html="";
var url='https://'+progetto+'.wikisource.org/w/api.php';
if (progetto==="mul") url='https://wikisource.org/w/api.php';
$.ajax({
url: url,
data: {
format: 'json',
action: 'parse',
prop:"text|wikitext",
page: titolo
},
dataType: 'jsonp' // this is the important one!
}).done(function(data) {
// try {
html=$(data.parse.text["*"]);
$("a",html).each(function() {
var href=$(this).attr("href");
if (href!==undefined && href.indexOf("/wiki/")===0) $(this).attr("href",href.replace("/wiki/","/wiki/"+progetto+"wikisource:"));
if (href!==undefined && href.indexOf("/w/")===0) $(this).attr("href",href.replace("/w/","//"+progetto+".wikisource.org/w/"));
});
ipt.html=html;
ipt.titolo=titolo;
if (html.eq(1).hasClass("pagetext")) {
var pgContainer=$("<div class='prp-page-container'>"+
"<div class='prp-page-content' style='width:49%; float:left;'></div>"+
"<div class='prp-page-image' style='width:49%; float:right;'></div></div>");
$(".prp-page-content",pgContainer).append(html);
html=pgContainer;
var datiImg=/.+?:(.+)\/([0123456789০১২৩৪৫৬৭৮৯]+)/.exec(titolo);
if (progetto=="bn") datiImg[2]=b2a(datiImg[2]);
var codiceImm="[[File:"+datiImg[1]+"|1024px|page="+datiImg[2]+"]]";
$.ajax({
url: '/w/api.php',
data: {
format: 'json',
action: 'parse',
prop:'text',
text: codiceImm
},
dataType: 'jsonp' // this is the important one!
}).done(function(data) {
var t=data.parse.text["*"];
var imgPag=$(t);
$("img",imgPag).css("width","100%").css("height","auto");
$(".prp-page-image").append(imgPag);
});
}
$("#mw-content-text").append(ipt.warning);
$("#mw-content-text").append(html);
if ($(".pagetext").length>0) addArrows();
$(".noarticletext").css("display","none");
$("span a[href*='wsexport']").css("display","none");
$(".ws-noexport").has("input").css("display","none");
// }
// catch(err) {
// console.log("Errore routine elaborazione risposta ajax in load()");
// }
});
}
/* modifica link verso pagine ipt */
for (i=0;i<ipt.pList.length;i+=1) {
$("a[href*='"+ipt.pList[i]+"wikisource:']").each(function() {
var href=$(this).attr("href").replace("&action=edit&redlink=1","");
$(this).attr("href",href);
$(this).removeClass("new");
});
}
/* verifica che la pagina corrente è ipt */
for (i=0;i<ipt.pList.length;i+=1) {
if (mw.config.get("wgPageName").indexOf(ipt.pList[i]+'wikisource:')===0) {
preload();
break;
}
}
})();
/*se sì:
caricamento css remoto
caricamento css specifico per ipt
caricamento warning
caricamento html
modifica html
visualizzazione html
*/