Utilisateur:Mabot/featuredTemplateSwitch.js
Un article de Wikipédia, l'encyclopédie libre.
Note : Après avoir publié la page, vous devrez forcer son rechargement pour voir les changements : Mozilla / Konqueror / Firefox : Shift-Ctrl-R, Internet Explorer / Opera : Ctrl-F5, Safari : Cmd-R.
console.profile() wgNamespaceNumber=0 addOnloadHook(featuredInterWikis); function featuredInterWikis() { var pLang = document.getElementById("p-lang"); if (!pLang) return; var splitContent = function(elt) { if(!elt) return "" if(elt.textContent) return elt.textContent.replace(/[ \n\t]/g,"") else if(elt.innerText) return elt.innerText.replace(/[ \n\t]/g,"") else return "" } var AdQs = splitContent(document.getElementById('itws_ADQ')) var BAs = splitContent(document.getElementById('itws_BA')) if(AdQs.length!=0 || BAs.length!=0) { var lis = pLang.getElementsByTagName("li"); var l = lis.length var p var className for (var i=0; i<l; i++) { className = lis[i].className.substring(10) p = BAs.indexOf(className) if(p!=-1) { lis[i].className += " BA"; lis[i].title = "Lien vers un bon article"; } else { p = AdQs.indexOf(className) if(p!=-1) { lis[i].className += " AdQ"; lis[i].title = "Lien vers un article de qualité"; } } } } } function featuredInterwikiTemplateReplacment(type) { var delay = debugFlag?10:30 getPageListUsingTemplate("Modèle:Lien " + type, function(list) { processList(list, function(elt) { var title = elt.title return modifyPage(title, processFeaturedInterwikiTemplate, "Remplacement de modèle {{lien AdQ/BA}} -> {{Liens AdQ/BA}}") }, delay) }) } function processFeaturedInterwikiTemplate(content) { var langStr = "aa|ab|af|ak|als|am|an|ang|ar|arc|as|ast|av|ay|az|ba|bar|bat-smg|bcl|be|be-x-old|bg|bh|bi|bm|bn|bo|bpy|br|bs|bug|bxr|ca|cbk-zam|cdo|ce|ceb|ch|cho|chr|chy|closed-zh-tw|co|cr|crh|cs|csb|cu|cv|cy|da|de|diq|dsb|dv|dz|ee|el|eml|en|eo|es|et|eu|ext|fa|ff|fi|fiu-vo|fj|fo|fr|frp|fur|fy|ga|gan|gd|gl|glk|gn|got|gu|gv|ha|hak|haw|he|hi|hif|ho|hr|hsb|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|ilo|io|is|it|iu|ja|jbo|jv|ka|kaa|kab|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ksh|ku|kv|kw|ky|la|lad|lb|lbe|lg|li|lij|lmo|ln|lo|lt|lv|map-bms|mdf|mg|mh|mi|mk|ml|mn|mo|mr|ms|mt|mus|my|myv|mzn|na|nah|nan|nap|nds|nds-nl|ne|new|ng|nl|nn|no|nov|nrm|nv|ny|oc|om|or|os|pa|pag|pam|pap|pdc|pi|pih|pl|pms|ps|pt|qu|rm|rmy|rn|ro|roa-rup|roa-tara|ru|rw|sa|sah|sc|scn|sco|sd|se|sg|sh|si|simple|sk|sl|sm|sn|so|sq|sr|srn|ss|st|stq|s|sv|sw|szl|ta|te|tet|tg|th|ti|tk|tl|tn|to|tokipona|tpi|tr|ts|tt|tum|tw|ty|udm|ug|uk|ur|uz|ve|vec|vi|vls|vo|wa|war|wo|wuu|xal|xh|y|yo|za|zea|zh|zh-classical|zh-min-nan|zh-yue|zu" function getOldFeaturedInterwikiTemplate(type) { var regMatch = eval("/\\{\\{[Ll]ien "+ type +"\\|(1=)?("+ langStr +")\\}\\}\\n?/g") var match = content.match(regMatch) var res = [] if(match) { for(var i=0;i!=match.length;i++) { match[i] = match[i].replace("lien "+type,"") match[i] = match[i].replace("Lien "+type,"") match[i] = match[i].replace(/[\n\t \{\}\|=1]/g,"") } content = content.replace(regMatch, "") res = match } return res } function getNewFeaturedInterwikiTemplate(type) { var regMatch = eval("/\\{\\{[lL]iens "+ type +"\\|(1=)?[^\\}]*\\}\\}\\n?/g") var match = content.match(regMatch) var res = [] if(match) { match[0] = match[0].replace("liens "+type,"") match[0] = match[0].replace("Liens "+type,"") match[0] = match[0].replace(/[\n\t \{\}\|=1]/g,"") content = content.replace(regMatch, "") res = match[0].split(/ *\t* *, *\t* */) } return res } function getConcatenedArrays(array1, array2) { for(var i=0;i!=array2.length;i++) if(array1.indexOf(array2[i])==-1) array1.push(array2[i]) array1.sort() for(var i=1;i<array1.length;i++) { if(array1[i]==array1[i-1]) { array1.splice(i,1) i-- } } return array1.join(", ") } var AdQ = getOldFeaturedInterwikiTemplate("AdQ") var BA = getOldFeaturedInterwikiTemplate("BA") var AdQ2 = getNewFeaturedInterwikiTemplate("AdQ") var BA2 = getNewFeaturedInterwikiTemplate("BA") var AdQStr = getConcatenedArrays(AdQ, AdQ2) var BAStr = getConcatenedArrays(BA, BA2) var regSearch = eval("/\\[\\[(" + langStr + "):.*\\]\\]\\n/") var p = content.search(regSearch) if(p==-1) p = content.length-1 var text = AdQStr.length==0? "" : "{{Liens AdQ|" + AdQStr + "}}\n" text += BAStr.length==0? "" : "{{Liens BA|" + BAStr + "}}\n" text += "\n" content = content.substring(0,p) + text + content.substring(p) return content }