Utente:Jalo/monobook.js: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Aggiunta Category Watchlist |
||
Riga 1:
/*
Per questo monobook ringrazio:
*[[:en:User:Wayward|Wayward]], [[:en:User:Alphax|Alphax]], [[Utente:Paulatz|Paulatz]], [[Utente:Helios89|Helios89]] e [[Utente:Timendum|Timendum]] per aver implementato le varie parti
*[[:en:User:ABCD|ABCD]] che aveva iniziato il lavoro
*[[Utente:Salvatore Ingala|Salvatore Ingala]] che con un preciso taglia e cuci l'ha messo insieme
*[[:en:User:Ilmari Karonen|Ilmari Karonen]] per la ricerca in un namespace particolare
*[[:en:User:Ais523]] per l'aggiunta delle categorie nella lista di "Osservati speciali"
*/
/* <pre><nowiki> */
//=====PRIMO BLOCCO: TOOLBAR, PURGE, ECC.======
/**
* Derivato dal monobook.js di [[:en:User:Wayward]], basato su [[:en:User:Alphax/monobook.js]]
Riga 689 ⟶ 692:
/**** Fine ****/
//=====POPUP=====
// [[:en:User:Lupin/popups.js]]
Riga 706 ⟶ 707:
popupQueriedRevertSummary = "Rollback da popup. Ripristinata la versione di $3";
popupRedlinkSummary = "Eliminato link rosso: %s";
//**** fine POPUP ****
//====== CATEGORY WATCHLIST =======
/* Controllo categorie (grazie a [[:en:User:ais523]]); aggiunge elementi alla
watchlist se una pagina viene aggiunta ad una categoria (ed e' ancora
presente al momento del controllo). Questo evento apparira' solo se un'altra
pagina della watchlist e' stata modificata quel giorno (se l'aggiunta e'
l'unica cosa successa non apparira'). La ricategorizzazione di una pagina
ad una categoria osservata verra' segnalata anche se la modifica riguardava
un'altra categoria (a meno che quella osservata viene cancellata);
I cancellamenti dalla categoria controllata non verranno visualizzati. Le
Categorie contenenti piu' di 100 pagine non vengono gestite per problemi di
sovraccarico dei server.
*/
var cwwpajax;
// From [[WP:US]] mainpage (wpajax renamed to cwwpajax)
cwwpajax={
download:function(bundle) {
// mandatory: bundle.url
// optional: bundle.onSuccess (xmlhttprequest, bundle)
// optional: bundle.onFailure (xmlhttprequest, bundle)
// optional: bundle.otherStuff OK too, passed to onSuccess and onFailure
var x = window.XMLHttpRequest ? new XMLHttpRequest()
: window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP")
: false;
if (x) {
x.onreadystatechange=function() {
x.readyState==4 && cwwpajax.downloadComplete(x,bundle);
};
x.open("GET",bundle.url,true);
x.send(null);
}
return x;
},
downloadComplete:function(x,bundle) {
x.status==200 && ( bundle.onSuccess && bundle.onSuccess(x,bundle) || true )
|| ( bundle.onFailure && bundle.onFailure(x,bundle) || alert(x.statusText));
}
};
// Example:
// function dlComplete(xmlreq, data) {
// alert(data.message + xmlreq.responseText);
// }
// cwwpajax.download({url:'http://it.wikipedia.org/w/index.php?title=Thresher&action=raw',
// onSuccess: dlComplete, message: "Here's what we got:\n\n" });
// End of [[WP:US]] quote
function cwOntoWatchlist(xmlreq, data)
{
var a=xmlreq.responseText;
var c=data.catname;
var i;
if(a.indexOf("<error>")!=-1) return; //cat e' vuota, niente da fare qui
if(a.indexOf("<category next=")!=-1) return; //cat ha piu' di 100 elementi, i risultati verranno eliminati
a=a.split("<timestamp>");
var latesttime=0;
var latestpage="";
var temp, temp2;
for(i in a)
{
temp=a[i].indexOf("</timestamp>");
if(temp!=-1)
{
temp=new Number(a[i].substr(0,temp));
if(temp>latesttime)
{
latesttime=temp;
a[i]=a[i].substr(a[i].indexOf("<title>")+7);
latestpage=a[i].substr(0,a[i].indexOf("</title>"));
}
}
}
a=document.getElementsByTagName("h4"); //recupera le date nella watchlist
var monthname=new Array();
monthname['01']="January";
monthname['02']="February";
monthname['03']="March";
monthname['04']="April";
monthname['05']="May";
monthname['06']="June";
monthname['07']="July";
monthname['08']="August";
monthname['09']="September";
monthname['10']="October";
monthname['11']="November";
monthname['12']="December";
latesttime=new String(latesttime);
temp=""+new Number(latesttime.substr(6,2))+" "+monthname[latesttime.substr(4,2)]+" "+latesttime.substr(0,4);
i=a.length;
while(i--)
{
if(a[i].innerHTML==temp)
{
temp=a[i].nextSibling.firstChild;
while(temp!=null)
{
if(temp.tagName!=null)
if(temp.tagName.toLowerCase()=="li")
{
temp2=temp.innerHTML.match(/; ([0-9][0-9]):([0-9][0-9]) \. \./);
temp2=new Number(temp2[1])*100+new Number(temp2[2]);
if(temp2<new Number(latesttime.substr(8,4))) {temp2=temp; break;}
}
temp2=temp; temp=temp.nextSibling;
if(temp==null) break;
}
temp=document.createElement("li");
a[i].nextSibling.insertBefore(temp,temp2);
temp.innerHTML="(diff) (hist) . . <a href='http://it.wikipedia.org/wiki/Category:"+encodeURI(c)+
"'>Category:"+c+"</a>; "+latesttime.substr(8,2)+":"+latesttime.substr(10,2)+" . . (+ "+
"<a href='http://it.wikipedia.org/wiki/"+encodeURI(latestpage)+"'>"+latestpage+"</a> "+
"(<a href='http://it.wikipedia.org/w/index.php?title="+encodeURI(latestpage)+
"&diff=last'>last</a>))";
return;
}
}
}
var WatchedCategories; //evita errori se ancora non esiste una cat-watchlist
//Un esempio di query per il controllo di una categoria potrebbe essere
//http://it.wikipedia.org/w/query.php?what=category&cptitle=Wikipedia%20protected%20edit%20requests&cplimit=100&cpextended
addOnloadHook(function(){
if(wgPageName=="Special:Watchlist")
{
if(WatchedCategories==undefined)
{
if(confirm("Ancora non hai una lista di categorie da controllare. Vuoi crearne una?"))
___location.href='http://it.wikipedia.org/w/index.php?title=User:'+wgUserName+
'/CategorieOsservate.js&action=edit&preload=Utente:Jalo/CategorieOsservateTemplate.js';
}
else
{
var i;
for(i in WatchedCategories)
{
var a=WatchedCategories[i];
cwwpajax.download({url:'http://it.wikipedia.org/w/query.php?what=category&cptitle='+encodeURI(a)+
'&cplimit=100&cpextended&format=xml', onSuccess:cwOntoWatchlist, catname:a});
}
}
}
});
// aggiungi la watchlist delle categorie dell'utente
document.write('<script type="text/javascript" src="http://it.wikipedia.org'
+ '/w/index.php?title=Utente:'+wgUserName+'/CategorieOsservate.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
//**** fine CATEGORY WATCHLIST ******
/* </nowiki></pre> */
|