Utilisateur:Dr Bot/Scripts/Liste des Portails non indexés BOT
/*
- /
//-->
//<pre><nowiki>
var ListUnindexedPortals_APILimit = ( ((mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)) ? 4999 : 499 );
var ListUnindexedPortals_APIURL_AllPortals = '//fr.wikipedia.org/w/api.php?format=xml&action=query&list=allpages&aplimit='+ListUnindexedPortals_APILimit+'&apnamespace=100&apfilterredir=nonredirects';
var ListUnindexedPortals_APIURL_Templates = '//fr.wikipedia.org/w/api.php?format=xml&action=query&prop=templates&titles=$1&tltemplates=$2';
var ListUnindexedPortals_SearchedTemplate = "Nombre d'articles";
var ListUnindexedPortals_Ajax = function(bundle) {
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false
}
}
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4){
if (xmlhttp.status == 200 || xmlhttp.status == 302) {
if (bundle.onSuccess) bundle.onSuccess(xmlhttp,bundle);
} else {
if (bundle.onFailure) bundle.onFailure(xmlhttp,bundle);
}
}
}
xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async === false ? false : true);
if (bundle.headers) {
for (var field in bundle.headers){
try { xmlhttp.setRequestHeader(field,bundle.headers[field]); } catch(err) { }
}
}
xmlhttp.send(bundle.data ? bundle.data : null);
}
return xmlhttp;
};
function ListUnindexedPortals_GetPage(URL, NextFunc){
ListUnindexedPortals_Ajax({ url: URL,
onSuccess:NextFunc
});
}
if(mw.config.get('wgNamespaceNumber')==2) addOnloadHook(ListUnindexedPortals_AddLinks);
function ListUnindexedPortals_AddLinks(){
var ButtonLink = document.getElementById('ListUnindexedPortals_Link');
if(!ButtonLink) return;
var Link = '<a id="ListUnindexedPortals_A" href="javascript:ListUnindexedPortals_Run();" title="Lancer la mise à jour">' + ButtonLink.innerHTML + '</a>';
ButtonLink.innerHTML = Link;
var Separator = document.createElement('br');
var ControlSpan = document.createElement('span');
ControlSpan.id = 'ListUnindexedPortals_Control';
ButtonLink.parentNode.insertBefore(Separator, ButtonLink);
ButtonLink.parentNode.insertBefore(ControlSpan, Separator);
}
function ListUnindexedPortals_Alert(Text){
if(!Text) Text = '';
var ControlElement = document.getElementById('ListUnindexedPortals_Control');
if(ControlElement) ControlElement.innerHTML = Text;
}
function ListUnindexedPortals_Run(){
ListUnindexedPortals_Alert("Listage de tous les portails");
ListUnindexedPortals_GetPage(ListUnindexedPortals_APIURL_AllPortals, ListUnindexedPortals_AllPortals);
}
var ListUnindexedPortals_Array = new Array();
function ListUnindexedPortals_AllPortals(Req){
var ObjetXML = Req.responseXML;
var AllPortals = ObjetXML.getElementsByTagName('p');
for(a=0;a<AllPortals.length;a++){
var TitrePage =AllPortals[a].getAttribute('title');
if(TitrePage.indexOf('/')==-1){
ListUnindexedPortals_Array.push(TitrePage);
}
}
var AutreRequeteNecessaire = ObjetXML.getElementsByTagName('query-continue')[0];
if(AutreRequeteNecessaire){
var ContinueParam = AutreRequeteNecessaire.firstChild.attributes[0];
var AutreRequeteContinue = ContinueParam.value;
ListUnindexedPortals_Alert("Listage de tous les portails : "+AutreRequeteContinue);
ListUnindexedPortals_GetPage(ListUnindexedPortals_APIURL_AllPortals+'&'+ContinueParam.name+'='+encodeURIComponent(AutreRequeteContinue), ListUnindexedPortals_AllPortals);
}else{
ListUnindexedPortals_Alert("Listage des portails sans modèle");
for(var a=0,l=ListUnindexedPortals_Array.length;a<l;a++){
ListUnindexedPortals_SearchTemplate(a);
}
}
}
var ListUnindexedPortals_NoTemplateArray = new Array();
function ListUnindexedPortals_SearchTemplate(position){
if(!position) position = 0;
var Page = ListUnindexedPortals_Array[position];
if(!Page){
ListUnindexedPortals_ShowResult();
return;
}
ListUnindexedPortals_Alert("Listage des portails sans modèle : "+Page);
var URL = ListUnindexedPortals_APIURL_Templates;
URL = URL.split("$1").join(encodeURIComponent(Page));
URL = URL.split("$2").join("Modèle:"+encodeURIComponent(ListUnindexedPortals_SearchedTemplate));
ListUnindexedPortals_Ajax({ url: URL,
onSuccess:ListUnindexedPortals_SearchTemplateDone,
page:Page
});
}
function ListUnindexedPortals_SearchTemplateDone(Req, data){
var XML = Req.responseXML;
var TL = XML.getElementsByTagName("tl")[0];
if(!TL || TL.getAttribute("title") != ("Modèle:"+ListUnindexedPortals_SearchedTemplate) ){
ListUnindexedPortals_NoTemplateArray.push(data.page);
ListUnindexedPortals_ShowResult();
}
}
function ListUnindexedPortals_ShowResult(){
var Text = "<p>Listage des portails sans modèle :</p>";
if(ListUnindexedPortals_NoTemplateArray.length===0){
Text += "<ul><li><b>Aucun</b></li></ul>";
}else{
Text += "<ol>";
for(var a=0,l=ListUnindexedPortals_NoTemplateArray.length;a<l;a++){
var Page = ListUnindexedPortals_NoTemplateArray[a];
var Link = '<a href="'+mw.config.get('wgServer') + mw.config.get('wgArticlePath').split("$1").join(encodeURIComponent(Page))+'" '
+ 'title="'+Page+'" '
+ '>'+Page+'</a>';
Text += "<li>" + Link +"</li>";
}
Text += "</ol>";
}
ListUnindexedPortals_Alert(Text);
}
// </nowiki></pre>