Utilisateur:Dr Brains/NewPagesDeluxe.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*
;Fonctions :
* Au lancement :
*# Pages vides encadrées en rouge
*# Menu supplémentaire de tri des pages
* Via le menu supplémentaire :
*# Recherche des pages sans bandeau de portail
*# Recherche des pages sans catégorie
*# Recherche des pages sans interwiki
*# Recherche des pages non-wikifiés (nombre de liens inférieur à une certaine valeur, 3 par défaut)
*# Recherche des pages orphelines (nombre de pages liées inférieur à une certaine valeur, 3 par défaut)
*/
////////////////////////////////////////////////////////////////////////// LANCEMENT + STYLES
if(mw.config.get('wgCanonicalSpecialPageName')=="Newpages"){
addOnloadHook(NewPagesDeluxe);
document.write('<style type="text/css">'
+'.EmptyPage {'
+'border:1px solid red;'
+'}'
+'.NewPagesDeluxe_Balise {'
+'cursor:pointer;'
+'text-decoration:blink;'
+'padding:0;'
+'}'
+'.NewPagesDeluxe_Portail {'
+'display:none;'
+'}'
+'.NewPagesDeluxe_Cat {'
+'display:none;'
+'}'
+'.NewPagesDeluxe_Interwiki {'
+'display:none;'
+'}'
+'.NewPagesDeluxe_Wikif {'
+'display:none;'
+'}'
+'.NewPagesDeluxe_Orphan {'
+'display:none;'
+'}'
+'.NewPagesDeluxe_Running {'
+'background-color:silver;'
+'border:1px solid black;'
+'}'
+'</style>');
}
// ////////////////////////////////////////////////////////// NOUVELLES OPTIONS ///////////////////////
function NewPagesDeluxe(){
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.getElementById('article');
if(!Content) return;
var Liste = Content.getElementsByTagName('li');
for(var a=0;a<Liste.length;a++){
if(Liste[a].innerHTML.indexOf('[0 octet]')!=-1){ // --------- Pages blanchies
$(Liste[a]).addClass("EmptyPage");
}
}
var NewPagesTable = document.getElementById('mw-newpages-table');
var NewMenu = document.createElement('tr');
NewPagesTable.firstChild.appendChild(NewMenu);
var NewPagesWithoutPortalLink = '<a href="javascript:NewPagesDeluxe_Portal(0);" >Sans bandeau de portail</a>';
var NewPagesWithoutCatsLink = '<a href="javascript:NewPagesDeluxe_Category(0);" >Sans catégorie</a>';
var NewPagesWithoutInterwikiLink = '<a href="javascript:NewPagesDeluxe_Interwiki(0);" >Sans interwiki</a>';
var NewPagesWikifLink = '<a href="javascript:NewPagesDeluxe_Wikif();" >Non-wikifiées</a>';
var NewPagesOrphansLink = '<a href="javascript:NewPagesDeluxe_Orphan();" >Orphelines</a>';
var NewPagesWithoutCancelLink = '<a href="javascript:NewPagesDeluxe_Cancel();" >Annuler</a>';
NewMenu.innerHTML = '<td></td><td>Ne montrer que les pages : '
+NewPagesWithoutPortalLink+' | '
+NewPagesWithoutCatsLink+' | '
+NewPagesWithoutInterwikiLink+' | '
+NewPagesWikifLink+' | '
+NewPagesOrphansLink+' | '
+NewPagesWithoutCancelLink
+'</td>';
}
// ////////////////////////////////////////////////////////// PAGES SANS BANDEAU DE PORTAIL ///////////////////////
function NewPagesDeluxe_Portal(position){
if(!position) position = 0;
if(position==0) NewPagesDeluxe_Cancel();
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.getElementById('article');
if(!Content) return;
var Liste = Content.getElementsByTagName('li')[position];
if(!Liste){alert('Tri effectué'); return;}
$(Liste).addClass("NewPagesDeluxe_Running");
var PageLink = Liste.getElementsByTagName('a')[0].innerHTML;
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&prop=templates&tllimit=499&titles=' + PageLink.replace(/&/g,"%26").replace(/&/g,"%26") + '&redirects';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var matchPortail = false;
for(a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if(ContenuInformation.indexOf('title=')!=-1){
var TitrePage = ContenuInformation.split('title="')[1].split('"')[0];
TitrePage = NewPagesDeluxe_APIClean(TitrePage);
if(TitrePage=="Modèle:Méta lien vers portail") matchPortail = true;
}
}
if(matchPortail==true) $(Liste).addClass("NewPagesDeluxe_Portail");
$(Liste).removeClass("NewPagesDeluxe_Running");
NewPagesDeluxe_Portal((position+1));
}
}
}
// ////////////////////////////////////////////////////////// PAGES SANS CATÉGORIES ///////////////////////
function NewPagesDeluxe_Category(position){
if(!position) position = 0;
if(position==0) NewPagesDeluxe_Cancel();
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.getElementById('article');
if(!Content) return;
var Liste = Content.getElementsByTagName('li')[position];
if(!Liste){alert('Tri effectué'); return;}
$(Liste).addClass("NewPagesDeluxe_Running");
var PageLink = Liste.getElementsByTagName('a')[0].innerHTML;
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&prop=categories&titles=' + PageLink.replace(/&/g,"%26").replace(/&/g,"%26") + '&redirects';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var matchCat = false;
for(a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if((ContenuInformation.indexOf('ns="14"')!=-1)&&(ContenuInformation.indexOf('pageid=')==-1)){
matchCat = true;
}
}
if(matchCat==true) $(Liste).addClass("NewPagesDeluxe_Cat");
$(Liste).removeClass("NewPagesDeluxe_Running");
NewPagesDeluxe_Category((position+1));
}
}
}
// ////////////////////////////////////////////////////////// PAGES SANS INTERWIKI ///////////////////////
function NewPagesDeluxe_Interwiki(position){
if(!position) position = 0;
if(position==0) NewPagesDeluxe_Cancel();
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.getElementById('article');
if(!Content) return;
var Liste = Content.getElementsByTagName('li')[position];
if(!Liste){alert('Tri effectué'); return;}
$(Liste).addClass("NewPagesDeluxe_Running");
var PageLink = Liste.getElementsByTagName('a')[0].innerHTML;
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&prop=langlinks&lllimit=499&titles=' + PageLink.replace(/&/g,"%26").replace(/&/g,"%26") + '&redirects';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var matchInterwiki = false;
for(a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if(ContenuInformation.indexOf('lang="')!=-1){
matchInterwiki = true;
}
}
if(matchInterwiki==true) $(Liste).addClass("NewPagesDeluxe_Interwiki");
$(Liste).removeClass("NewPagesDeluxe_Running");
NewPagesDeluxe_Interwiki((position+1));
}
}
}
// ////////////////////////////////////////////////////////// PAGES NON WIKIFIÉES ///////////////////////
function NewPagesDeluxe_Wikif(){
var MaxLinks = prompt('Nombre maximum de liens ?\n(Espace principal)','3');
if(MaxLinks){
MaxLinks = parseInt(MaxLinks);
NewPagesDeluxe_Wikif_Run(0, MaxLinks);
}
}
function NewPagesDeluxe_Wikif_Run(position, limit){
if(position==0) NewPagesDeluxe_Cancel();
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.getElementById('article');
if(!Content) return;
var Liste = Content.getElementsByTagName('li')[position];
if(!Liste){alert('Tri effectué'); return;}
$(Liste).addClass("NewPagesDeluxe_Running");
var PageLink = Liste.getElementsByTagName('a')[0].innerHTML;
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&prop=links&pllimit='+(limit-1) +'&plnamespace=0&titles=' + PageLink.replace(/&/g,"%26").replace(/&/g,"%26") + '&redirects';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var AutreRequeteNecessaire = false;
for(var a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if(ContenuInformation.indexOf('plcontinue=')!=-1){
AutreRequeteNecessaire = true;
}
}
if(AutreRequeteNecessaire==true) $(Liste).addClass("NewPagesDeluxe_Wikif");
$(Liste).removeClass("NewPagesDeluxe_Running");
NewPagesDeluxe_Wikif_Run((position+1), limit);
}
}
}
// ////////////////////////////////////////////////////////// PAGES ORPHELINES ///////////////////////
function NewPagesDeluxe_Orphan(){
var MaxBackLinks = prompt('Nombre maximum de pages liées ?\n(Espace principal)','3');
if(MaxBackLinks){
MaxBackLinks = parseInt(MaxBackLinks);
NewPagesDeluxe_Orphan_Run(0, MaxBackLinks);
}
}
function NewPagesDeluxe_Orphan_Run(position, limit){
if(position==0) NewPagesDeluxe_Cancel();
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.getElementById('article');
if(!Content) return;
var Liste = Content.getElementsByTagName('li')[position];
if(!Liste){alert('Tri effectué'); return;}
$(Liste).addClass("NewPagesDeluxe_Running");
var PageLink = Liste.getElementsByTagName('a')[0].innerHTML;
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&list=backlinks&bllimit='+(limit-1) +'&blnamespace=0&bltitle=' + PageLink.replace(/&/g,"%26").replace(/&/g,"%26") + '&blredirect';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var AutreRequeteNecessaire = false;
for(var a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if(ContenuInformation.indexOf('blcontinue=')!=-1){
AutreRequeteNecessaire = true;
}
}
if(AutreRequeteNecessaire==true) $(Liste).addClass("NewPagesDeluxe_Orphan");
$(Liste).removeClass("NewPagesDeluxe_Running");
NewPagesDeluxe_Orphan_Run((position+1), limit);
}
}
}
// ////////////////////////////////////////////////////////// ANNULATION ///////////////////////
function NewPagesDeluxe_Cancel(){
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.getElementById('article');
if(!Content) return;
var Liste = Content.getElementsByTagName('li');
for(var a=0;a<Liste.length;a++){
$(Liste[a]).removeClass("NewPagesDeluxe_Portail");
$(Liste[a]).removeClass("NewPagesDeluxe_Cat");
$(Liste[a]).removeClass("NewPagesDeluxe_Interwiki");
$(Liste[a]).removeClass("NewPagesDeluxe_Wikif");
$(Liste[a]).removeClass("NewPagesDeluxe_Orphan");
}
}
// ////////////////////////////////////////////////////////// NETTOYAGE REQUÊTES API ///////////////////////
function NewPagesDeluxe_APIClean(text){
while(text.indexOf('&')!=-1){
text = text.split('&').join("&");
if(text.indexOf('&')==-1) break;
}
while(text.indexOf(''')!=-1){
text = text.split(''').join("'");
if(text.indexOf(''')==-1) break;
}
while(text.indexOf('"')!=-1){
text = text.split('"').join('"');
if(text.indexOf('"')==-1) break;
}
while(text.indexOf(' ')!=-1){
text = text.split(' ').join(' ');
if(text.indexOf(' ')==-1) break;
}
return text;
}