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
 
}