« MediaWiki:Bot/PagesSansImage.js » : différence entre les versions
Jump to navigation
Jump to search
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 21 : | Ligne 21 : | ||
// C'est parti !!! |
// C'est parti !!! |
||
// ========================================================================================================= |
|||
// Textes. |
|||
| ⚫ | |||
var PagesSansImage_Text_PageAide = "MediaWiki:Bot/PagesSansImage"; |
|||
var PagesSansImage_Text_Aide = "aide"; |
|||
var PagesSansImage_Text_GoText = "Lancer le robot de mise à jour"; |
|||
var PagesSansImage_Text_GoTitle = "Lancement BOT : Pages à illustrer"; |
|||
var PagesSansImage_Text_StopText = "Arrêt BOT"; |
|||
var PagesSansImage_Text_StopTitle = "Arrêter le robot de mise à jour"; |
|||
| ⚫ | |||
var PagesSansImage_Text_AlertCertain = "Lancement du bot ?"; |
|||
var PagesSansImage_Text_RunListagePage = "Listage des pages<br/>Page "; |
|||
var PagesSansImage_Text_RunCheckImages = "Requête API des pages de $1 à $2"; |
|||
var PagesSansImage_Text_RunCheckImagesYes = "Page avec image"; |
|||
var PagesSansImage_Text_RunCheckImagesNo = "Page sans image"; |
|||
var PagesSansImage_Text_RunDoEdit = "Édition de la page"; |
|||
var PagesSansImage_Text_PageTemplate = '__NORICHEDITOR__\n{{$1/Intro}}\n' |
|||
| ⚫ | |||
+ 'Dernière mise à jour : le $3/$4/$5 à $6:$7\n' |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
// ========================================================================================================= |
|||
// ========================================================================================================= |
// ========================================================================================================= |
||
| Ligne 27 : | Ligne 58 : | ||
addOnloadHook( function() { |
addOnloadHook( function() { |
||
var LienBot = document.createElement('li'); |
var LienBot = document.createElement('li'); |
||
LienBot.innerHTML = '<sup><small>(<a href="'+wgServer + ' |
LienBot.innerHTML = '<sup><small>(<a href="'+wgServer + wgArticlePath.split('$1').join(PagesSansImage_Text_PageAide)+ '">'+PagesSansImage_Text_Aide+'</a>)</small></sup> <a id="BOTon" href="javascript:PagesSansImage_LancementBot()" title="'+PagesSansImage_Text_GoTitle+'">'+PagesSansImage_Text_GoText+'</a>'; |
||
document.body.insertBefore(LienBot, document.body.firstChild); |
document.body.insertBefore(LienBot, document.body.firstChild); |
||
}); |
}); |
||
| Ligne 36 : | Ligne 67 : | ||
// Définition des liste de pages et infos correspondantes |
// Définition des liste de pages et infos correspondantes |
||
var |
var PagesSansImage_ListePages = new Array(); |
||
var |
var PagesSansImage_PagesSansImage = new Array(); |
||
// ========================================================================================================= |
// ========================================================================================================= |
||
| Ligne 44 : | Ligne 75 : | ||
// ========================================================================================================= |
// ========================================================================================================= |
||
function |
function PagesSansImage_LancementBot(){ |
||
if(document.getElementById('editform')){ |
if(document.getElementById('editform')){ |
||
alert(PagesSansImage_Text_AlertEdition); |
|||
| ⚫ | |||
return; |
return; |
||
} |
} |
||
var SurEtCertain = confirm( |
var SurEtCertain = confirm(PagesSansImage_Text_AlertCertain); |
||
if(!SurEtCertain) return; |
if(!SurEtCertain) return; |
||
var Button = document.getElementById('BOTon'); |
var Button = document.getElementById('BOTon'); |
||
Button.innerHTML = |
Button.innerHTML = PagesSansImage_Text_StopText; |
||
Button.title = |
Button.title = PagesSansImage_Text_StopTitle; |
||
Button.href = 'javascript:window.location.reload();'; |
Button.href = 'javascript:window.location.reload();'; |
||
var Result = document.createElement('div'); |
var Result = document.createElement('div'); |
||
| Ligne 61 : | Ligne 92 : | ||
var Page = document.getElementById('site_center'); |
var Page = document.getElementById('site_center'); |
||
if(Page) Page.style.display = "none"; |
if(Page) Page.style.display = "none"; |
||
PagesSansImage_ListagePage(1, ''); |
|||
} |
} |
||
function |
function PagesSansImage_ListagePage(Numero, PageDebut){ |
||
if(!PageDebut) PageDebut = ''; |
if(!PageDebut) PageDebut = ''; |
||
Requete = sajax_init_object(); |
Requete = sajax_init_object(); |
||
| Ligne 70 : | Ligne 101 : | ||
Requete.open('GET',url, true); |
Requete.open('GET',url, true); |
||
Requete.onreadystatechange = function(){ |
Requete.onreadystatechange = function(){ |
||
if(Requete.readyState |
if(Requete.readyState != 4) return; |
||
var Reponse = document.getElementById('API_Result'); |
|||
Reponse.innerHTML = PagesSansImage_Text_RunListagePage+Numero; |
|||
var ObjetXML = Requete.responseXML; |
|||
var AllPages = ObjetXML.getElementsByTagName('p'); |
|||
for(var a=0;a<AllPages.length;a++){ |
|||
var ThisPageName = AllPages[a].getAttribute("title"); |
|||
PagesSansImage_ListePages.push(ThisPageName); |
|||
} |
|||
var OtherPage = ObjetXML.getElementsByTagName('query-continue')[0]; |
|||
if(OtherPage){ |
|||
var OtherPageTitle = OtherPage.getElementsByTagName("allpages")[0].getAttribute("apfrom"); |
|||
PagesSansImage_ListagePage((Numero+1),"&apfrom="+OtherPageTitle); |
|||
}else{ |
|||
PagesSansImage_CheckImages(0); |
|||
| ⚫ | |||
} |
} |
||
} |
} |
||
| Ligne 94 : | Ligne 124 : | ||
function |
function PagesSansImage_CheckImages(position){ |
||
if(!position) position = 0; |
if(!position) position = 0; |
||
//if(position>15){ |
//if(position>15){ PagesSansImage_doEdit(); return; } // à décommenter pour tester sans passer les 2500 pages |
||
var PageRequete = |
var PageRequete = PagesSansImage_ListePages[position]; |
||
if(!PageRequete){ |
if(!PageRequete){ PagesSansImage_doEdit(); return; } |
||
if(PageRequete=="undefined"){ |
if(PageRequete=="undefined"){ PagesSansImage_doEdit(); return; } |
||
var Titres = new Array(); |
var Titres = new Array(); |
||
for(var a=position;a<(position+positionPeriod);a++){ |
for(var a=position;a<(position+positionPeriod);a++){ |
||
if( |
if(PagesSansImage_ListePages[a]) Titres.push(PagesSansImage_ListePages[a]); |
||
} |
} |
||
Requete = sajax_init_object(); |
Requete = sajax_init_object(); |
||
| Ligne 109 : | Ligne 139 : | ||
Requete.open('GET',url, true); |
Requete.open('GET',url, true); |
||
Requete.onreadystatechange = function(){ |
Requete.onreadystatechange = function(){ |
||
if(Requete.readyState |
if(Requete.readyState != 4) return; |
||
var Reponse = document.getElementById('API_Result'); |
|||
Reponse.innerHTML = PagesSansImage_Text_RunCheckImages.split('$1').join(Titres[0]).split('$2').join(Titres[(Titres.length-1)])+'<br/><ol id="PageListe"></ol>'; |
|||
var ObjetXML = Requete.responseXML; |
|||
var Pages = ObjetXML.getElementsByTagName("page"); |
|||
for(a=0;a<Pages.length;a++){ |
|||
var PageTitle = Pages[a].getAttribute("title") |
|||
var Image = Pages[a].getElementsByTagName("im")[0]; |
|||
if(!Image){ |
|||
document.getElementById("PageListe").innerHTML += '<li>'+PageTitle+' : '+PagesSansImage_Text_RunCheckImagesNo+'</li>'; |
|||
PagesSansImage_PagesSansImage.push(PageTitle); |
|||
}else{ |
|||
document.getElementById("PageListe").innerHTML += '<li>'+PageTitle+' : '+PagesSansImage_Text_RunCheckImagesYes+'</li>'; |
|||
| ⚫ | |||
} |
} |
||
| ⚫ | |||
} |
} |
||
| ⚫ | |||
} |
} |
||
Requete.send(null); |
Requete.send(null); |
||
} |
} |
||
function |
function PagesSansImage_doEdit(){ |
||
| ⚫ | |||
Requete = sajax_init_object(); |
Requete = sajax_init_object(); |
||
var url = wgServer + wgScript + '?title=' + |
var url = wgServer + wgScript + '?title=' + PagesSansImage_Text_PageEdit.replace(/&/g, "%26") + '&action=edit'; |
||
Requete.open('GET',url, true); |
Requete.open('GET',url, true); |
||
Requete.onreadystatechange = function(){ |
Requete.onreadystatechange = function(){ |
||
if(Requete.readyState |
if(Requete.readyState != 4) return; |
||
var Reponse = document.getElementById('API_Result'); |
|||
Reponse.innerHTML = url +'<br/>'+PagesSansImage_Text_RunDoEdit+' : ' + decodeURIComponent(PagesSansImage_Text_PageEdit) + '<br/>' + Requete.responseText; |
|||
| ⚫ | |||
Reponse.innerHTML += Requete.responseText; |
|||
var Aujourdhui = new Date(); |
|||
var Minutes = Aujourdhui.getMinutes() |
|||
| ⚫ | |||
var TexteFinal = '__NORICHEDITOR__\n{{'+PageEdit+'/Intro}}\n'; |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
var ListePagesSansImage = ""; |
|||
for(a=0;a<PagesSansImage.length;a++){ |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
} |
|||
| ⚫ | |||
+'Dernière mise à jour : le ' + ZeroJour + Jour + '/' + ZeroMois + Mois + '/' + Annee + ' à ' + ZeroHeures + Heures + ':' + ZeroMinutes + Minutes + '\n\n'; |
|||
| ⚫ | |||
for(a=0;a<PagesSansImage.length;a++){ |
|||
| ⚫ | |||
} |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
} |
} |
||
var TexteFinal = PagesSansImage_Text_PageTemplate; |
|||
TexteFinal = TexteFinal.split('$1').join(PagesSansImage_Text_PageEdit); |
|||
TexteFinal = TexteFinal.split('$2').join(PagesSansImage_Text_PageAide); |
|||
TexteFinal = TexteFinal.split('$3').join(ZeroJour + Jour); |
|||
TexteFinal = TexteFinal.split('$4').join(ZeroMois + Mois); |
|||
TexteFinal = TexteFinal.split('$5').join(Annee); |
|||
TexteFinal = TexteFinal.split('$6').join(ZeroHeures + Heures); |
|||
TexteFinal = TexteFinal.split('$7').join(ZeroMinutes + Minutes); |
|||
TexteFinal = TexteFinal.split('$8').join(ListePagesSansImage); |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
} |
} |
||
Requete.send(null); |
Requete.send(null); |
||
Version du 8 décembre 2010 à 15:22
//__NORICHEDITOR__
/////////////////////////////////////////////////////////////////////////////// BOT //////////
/************************************************* *************************************************
Fonction :
* dresser la liste des pages sans image
* Mettre à jour la page Wikimini:Pages à illuster
Pense-bête requêtes API : (limite de requête : 499 pouvant être portées à 4999 avec un statut Bot ou Wikitechnicien)
* Toutes les pages :
http://fr.wikimini.org/w/api.php?action=query&list=allpages&prop=info&aplimit=499 (Première requête)
http://fr.wikimini.org/w/api.php?action=query&list=allpages&prop=info&aplimit=499&apfrom=??? (requêtes suivantes (??? = titre de la page suivante à la requête précédente))
* Infos sur les images d'une page
http://fr.wikimini.org/w/api.php?action=query&prop=images&imlimit=1&titles=??? (??? = titre de la page)
********************************************************* ***************************************************************** */
// C'est parti !!!
// =========================================================================================================
// Textes.
var PagesSansImage_Text_PageEdit = "Wikimini:Pages à illustrer";
var PagesSansImage_Text_PageAide = "MediaWiki:Bot/PagesSansImage";
var PagesSansImage_Text_Aide = "aide";
var PagesSansImage_Text_GoText = "Lancer le robot de mise à jour";
var PagesSansImage_Text_GoTitle = "Lancement BOT : Pages à illustrer";
var PagesSansImage_Text_StopText = "Arrêt BOT";
var PagesSansImage_Text_StopTitle = "Arrêter le robot de mise à jour";
var PagesSansImage_Text_AlertEdition = "Il y a déjà une fenêtre d\'édition ouverte.\nFermez-là pour pouvoir lancer le bot.";
var PagesSansImage_Text_AlertCertain = "Lancement du bot ?";
var PagesSansImage_Text_RunListagePage = "Listage des pages<br/>Page ";
var PagesSansImage_Text_RunCheckImages = "Requête API des pages de $1 à $2";
var PagesSansImage_Text_RunCheckImagesYes = "Page avec image";
var PagesSansImage_Text_RunCheckImagesNo = "Page sans image";
var PagesSansImage_Text_RunDoEdit = "Édition de la page";
var PagesSansImage_Text_PageTemplate = '__NORICHEDITOR__\n{{$1/Intro}}\n'
+ 'Cette liste est mise à jour de façon automatique par un robot. <sup>([[$2|Aide]])</sup>\n\n'
+ 'Dernière mise à jour : le $3/$4/$5 à $6:$7\n'
+ '\n'
+ '<div style="-moz-column-count:2; column-count:2;">\n';
+ '$8'
+ '</div>\n'
// =========================================================================================================
// =========================================================================================================
// Ajout d'un lien en haut à gauche de la page pour lancer/arrêter le bot.
addOnloadHook( function() {
var LienBot = document.createElement('li');
LienBot.innerHTML = '<sup><small>(<a href="'+wgServer + wgArticlePath.split('$1').join(PagesSansImage_Text_PageAide)+ '">'+PagesSansImage_Text_Aide+'</a>)</small></sup> <a id="BOTon" href="javascript:PagesSansImage_LancementBot()" title="'+PagesSansImage_Text_GoTitle+'">'+PagesSansImage_Text_GoText+'</a>';
document.body.insertBefore(LienBot, document.body.firstChild);
});
// =========================================================================================================
// =========================================================================================================
// Définition des liste de pages et infos correspondantes
var PagesSansImage_ListePages = new Array();
var PagesSansImage_PagesSansImage = new Array();
// =========================================================================================================
// =========================================================================================================
function PagesSansImage_LancementBot(){
if(document.getElementById('editform')){
alert(PagesSansImage_Text_AlertEdition);
return;
}
var SurEtCertain = confirm(PagesSansImage_Text_AlertCertain);
if(!SurEtCertain) return;
var Button = document.getElementById('BOTon');
Button.innerHTML = PagesSansImage_Text_StopText;
Button.title = PagesSansImage_Text_StopTitle;
Button.href = 'javascript:window.location.reload();';
var Result = document.createElement('div');
Result.id = 'API_Result';
Result.style.Width = '100%';
Button.parentNode.insertBefore(Result, Button.nextSibling);
var Page = document.getElementById('site_center');
if(Page) Page.style.display = "none";
PagesSansImage_ListagePage(1, '');
}
function PagesSansImage_ListagePage(Numero, PageDebut){
if(!PageDebut) PageDebut = '';
Requete = sajax_init_object();
var url = wgServer+wgScriptPath+'/api.php?format=xml&action=query&list=allpages&prop=info&apfilterredir=nonredirects&aplimit=499'+PageDebut;
Requete.open('GET',url, true);
Requete.onreadystatechange = function(){
if(Requete.readyState != 4) return;
var Reponse = document.getElementById('API_Result');
Reponse.innerHTML = PagesSansImage_Text_RunListagePage+Numero;
var ObjetXML = Requete.responseXML;
var AllPages = ObjetXML.getElementsByTagName('p');
for(var a=0;a<AllPages.length;a++){
var ThisPageName = AllPages[a].getAttribute("title");
PagesSansImage_ListePages.push(ThisPageName);
}
var OtherPage = ObjetXML.getElementsByTagName('query-continue')[0];
if(OtherPage){
var OtherPageTitle = OtherPage.getElementsByTagName("allpages")[0].getAttribute("apfrom");
PagesSansImage_ListagePage((Numero+1),"&apfrom="+OtherPageTitle);
}else{
PagesSansImage_CheckImages(0);
}
}
Requete.send(null);
}
var positionPeriod = 50;
function PagesSansImage_CheckImages(position){
if(!position) position = 0;
//if(position>15){ PagesSansImage_doEdit(); return; } // à décommenter pour tester sans passer les 2500 pages
var PageRequete = PagesSansImage_ListePages[position];
if(!PageRequete){ PagesSansImage_doEdit(); return; }
if(PageRequete=="undefined"){ PagesSansImage_doEdit(); return; }
var Titres = new Array();
for(var a=position;a<(position+positionPeriod);a++){
if(PagesSansImage_ListePages[a]) Titres.push(PagesSansImage_ListePages[a]);
}
Requete = sajax_init_object();
var url = wgServer+wgScriptPath+'/api.php?format=xml&action=query&prop=images&imlimit=499&titles='+Titres.join("|");
Requete.open('GET',url, true);
Requete.onreadystatechange = function(){
if(Requete.readyState != 4) return;
var Reponse = document.getElementById('API_Result');
Reponse.innerHTML = PagesSansImage_Text_RunCheckImages.split('$1').join(Titres[0]).split('$2').join(Titres[(Titres.length-1)])+'<br/><ol id="PageListe"></ol>';
var ObjetXML = Requete.responseXML;
var Pages = ObjetXML.getElementsByTagName("page");
for(a=0;a<Pages.length;a++){
var PageTitle = Pages[a].getAttribute("title")
var Image = Pages[a].getElementsByTagName("im")[0];
if(!Image){
document.getElementById("PageListe").innerHTML += '<li>'+PageTitle+' : '+PagesSansImage_Text_RunCheckImagesNo+'</li>';
PagesSansImage_PagesSansImage.push(PageTitle);
}else{
document.getElementById("PageListe").innerHTML += '<li>'+PageTitle+' : '+PagesSansImage_Text_RunCheckImagesYes+'</li>';
}
}
PagesSansImage_CheckImages((position+positionPeriod));
}
Requete.send(null);
}
function PagesSansImage_doEdit(){
Requete = sajax_init_object();
var url = wgServer + wgScript + '?title=' + PagesSansImage_Text_PageEdit.replace(/&/g, "%26") + '&action=edit';
Requete.open('GET',url, true);
Requete.onreadystatechange = function(){
if(Requete.readyState != 4) return;
var Reponse = document.getElementById('API_Result');
Reponse.innerHTML = url +'<br/>'+PagesSansImage_Text_RunDoEdit+' : ' + decodeURIComponent(PagesSansImage_Text_PageEdit) + '<br/>' + Requete.responseText;
var Aujourdhui = new Date();
var Minutes = Aujourdhui.getMinutes()
if(Minutes<10){ var ZeroMinutes = "0" ; }else{ var ZeroMinutes = "";}
var Heures = Aujourdhui.getHours()
if(Heures<10){ var ZeroHeures = "0" ; }else{ var ZeroHeures = "";}
var Jour = Aujourdhui.getDate();
if(Jour<10){ var ZeroJour = "0" ; }else{ var ZeroJour = "";}
var Mois = Aujourdhui.getMonth() + 1;
if(Mois<10){ var ZeroMois = "0" ; }else{ var ZeroMois = "";}
var Annee = Aujourdhui.getYear();
if (Annee < 2000){ Annee = Annee + 1900; }
var ListePagesSansImage = "";
for(a=0;a<PagesSansImage.length;a++){
ListePagesSansImage += '# [[' + PagesSansImage_PagesSansImage[a] + ']]\n';
}
var TexteFinal = PagesSansImage_Text_PageTemplate;
TexteFinal = TexteFinal.split('$1').join(PagesSansImage_Text_PageEdit);
TexteFinal = TexteFinal.split('$2').join(PagesSansImage_Text_PageAide);
TexteFinal = TexteFinal.split('$3').join(ZeroJour + Jour);
TexteFinal = TexteFinal.split('$4').join(ZeroMois + Mois);
TexteFinal = TexteFinal.split('$5').join(Annee);
TexteFinal = TexteFinal.split('$6').join(ZeroHeures + Heures);
TexteFinal = TexteFinal.split('$7').join(ZeroMinutes + Minutes);
TexteFinal = TexteFinal.split('$8').join(ListePagesSansImage);
document.getElementById('wpTextbox1').value = TexteFinal ;
document.editform.wpSummary.value = 'Bot : mise à jour de la page';
document.editform.submit();
}
Requete.send(null);
}
Ce que tu peux faire
Outils

Outils personnels