Module:Catégorisation badges

La documentation pour ce module peut être créée à Module:Catégorisation badges/doc

local p = { }

--[=[
local badgesList = {
	Q6540291 = 'portail de qualité',
	Q6540326 = 'thème de qualité',
	Q17437796 = 'article de qualité',
	Q17437798 = 'bon article',
	Q17506997 = 'liste de qualité',
	Q17507019 = 'Le saviez-vous',
	Q17559452 = 'recommended article',
	Q17580674 = 'featured portal',
	Q17580678 = 'A-Class articles',
	Q17580679 = 'B-Class articles',
	Q17580680 = 'C-Class articles',
	Q17580682 = 'Top-importance articles',
}
]=]

local badgesCategory = {
	Q17437796 = 'Article de qualité',
	Q17437798 = 'Bon article',
	Q17506997 = 'Article de qualité'  -- 'liste de qualité',
}

local default = 'dans une autre langue'
local linkCategorySuffix = {
	-- cf. https://meta.wikimedia.org/wiki/List_of_Wikipedias (les wiki avec moins de 5 000 articles sans catégorie dédièe ont été ignorés)
	abwiki = default,
	acewiki = default,
	afwiki = 'en afrikaans',
	alswiki = 'en alsacien',
	amwiki = 'en amharique',
	anwiki = 'en aragonais',
	arwiki = 'en arabe',
	arywiki = default,
	arzwiki = 'en arabe égyptien',
	aswiki = 'en assamais',
	astwiki = 'en asturien',
	avkwiki = default,
	aywiki = default,
	azwiki = 'en azéri',
	azbwiki = default,
	bawiki = 'en bachkir',
	banwiki = default,
	barwiki = 'en bavarois',
	bat_smgwiki = 'en samogitien',
	bclwiki = default,
	bewiki = 'en biélorusse',
	be_x_oldwiki = 'en biélorusse',   -- https://be-tarask.wikipedia.org, mais son code interne est  be_x_oldwiki
	bgwiki = 'en bulgare',
	bhwiki = default,
	bjnwiki = default,
	bnwiki = 'en bengali',
	bowiki = default,
	bpywiki = 'en bishnupriya',
	brwiki = 'en breton',
	bswiki = 'en bosnien',
	bugwiki = default,
	bxrwiki = 'en bouriate',
	cawiki = 'en catalan',
	cdowiki = 'en mindong',
	cewiki = 'en tchétchène',
	cebwiki = 'en cebuano',
	ckbwiki = 'en sorani',
	cowiki = default,
	crhwiki = default,
	cswiki = 'en tchèque',
	csbwiki = default,
	cvwiki = 'en tchouvache',
	cywiki = 'en gallois',
	dawiki = 'en danois',
	dagwiki = default,
	dewiki = 'en allemand',
	diqwiki = 'en zazaki',
	dvwiki = 'en divehi',
	elwiki = 'en grec',
	emlwiki = default,
	simplewiki = 'en anglais',
	enwiki = 'en anglais',
	eowiki = 'en espéranto',
	eswiki = 'en espagnol',
	etwiki = 'en estonien',
	euwiki = 'en basque',
	extwiki = 'en estrémègne',
	fawiki = 'en persan',
	fiwiki = 'en finnois',
	['fiu-vrowiki'] = default,
	fowiki = 'en féroïen',
	frpwiki = default,
	frrwiki = 'en frison septentrional',
	fywiki = 'en frison occidental',
	gawiki = 'en irlandais',
	ganwiki = default,
	gdwiki = 'en gaélique écossais',
	glwiki = 'en galicien',
	glkwiki = default,
	gnwiki = default,
	gorwiki = default,
	guwiki = 'en gujarati',
	gvwiki = 'en mannois',
	hawiki = default,
	hakwiki = default,
	hewiki = 'en hébreu',
	hiwiki = 'en hindi',
	hifwiki = default,
	hrwiki = 'en croate',
	hsbwiki = default,
	htwiki = 'en haïtien',
	huwiki = 'en hongrois',
	hywiki = 'en arménien',
	hywwiki = default,
	iawiki = 'en interlingua',
	idwiki = 'en indonésien',
	iewiki = default,
	igwiki = default,
	ilowiki = default,
	iowiki = default,
	iswiki = 'en islandais',
	itwiki = 'en italien',
	jawiki = 'en japonais',
	jvwiki = 'en javanais',
	kawiki = 'en géorgien',
	kabwiki = default,
	kkwiki = 'en kazakh',
	klwiki = 'en groenlandais',
	kmwiki = 'en khmer',
	knwiki = 'en kannada',
	kowiki = 'en coréen',
	krcwiki = 'en karatchaï balkar',
	kuwiki = 'en kurde',
	kvwiki = 'en komi',
	kwwiki = default,
	kywiki = default,
	lawiki = 'en latin',
	lbwiki = 'en luxembourgeois',
	liwiki = 'en limbourgeois',
	lijwiki = default,
	lldwiki = default,
	lmowiki = 'en lombard',
	lowiki = 'en lao',
	ltwiki = 'en lituanien',
	lvwiki = 'en letton',
	maiwiki = 'en maïthili',
	map_bmswiki = 'en banyumasan',
	mgwiki = 'en malgache',
	mhrwiki = default,
	miwiki = default,
	minwiki = default,
	mkwiki = 'en macédonien',
	mlwiki = 'en malayâlam',
	mnwiki = 'en mongol',
	mniwiki = default,
	mrwiki = 'en marâthî',
	mrjwiki = default,
	mswiki = 'en malais',
	mtwiki = 'en maltais',
	mywiki = 'en birman',
	myvwiki = default,
	mznwiki = 'en mazandarani',
	nahwiki = 'en nahuatl',
	napwiki = default,
	ndswiki = default,
	nds_nlwiki = 'en bas-saxon néerlandais',
	newiki = 'en népalais',
	newwiki = default,
	nlwiki = 'en néerlandais',
	nnwiki = 'en norvégien nynorsk',
	nowiki = 'en norvégien',
	nsowiki = default,
	nvwiki = default,
	ocwiki = 'en occitan',
	orwiki = default,
	oswiki = default,
	pawiki = default,
	pamwiki = 'en pampangan',
	pcdwiki = default,
	piwiki = 'en pali',
	plwiki = 'en polonais',
	pmswiki = default,
	pnbwiki = default,
	pswiki = default,
	ptwiki = 'en portugais',
	quwiki = 'en quechua',
	rowiki = 'en roumain',
	['roa-tarawiki'] = default,
	ruwiki = 'en russe ',
	ruewiki = default,
	sawiki = 'en sanskrit',
	sahwiki = default,
	satwiki = default,
	scwiki = default,
	scnwiki = 'en sicilien',
	scowiki = 'en scots',
	sdwiki = 'en sindhi',
	sewiki = default,
	shwiki = 'en serbo-croate',
	shnwiki = default,
	siwiki = 'en cingalais',
	skwiki = 'en slovaque',
	skrwiki = default,
	slwiki = 'en slovène',
	smnwiki = default,
	snwiki = default,
	sowiki = default,
	sqwiki = 'en albanais',
	srwiki = 'en serbe',
	suwiki = 'en soudanais',
	svwiki = 'en suédois',
	swwiki = 'en swahili',
	szlwiki = 'en silésien',
	tawiki = 'en tamoul',
	tewiki = 'en télougou',
	tgwiki = default,
	thwiki = 'en thaï',
	tkwiki = default,
	tlwiki = 'en tagalog',
	tnwiki = 'en tswana',
	trwiki = 'en turc',
	ttwiki = 'en tatar',
	tumwiki = default,
	udmwiki = default,
	ugwiki = default,
	ukwiki = 'en ukrainien',
	urwiki = 'en ourdou',
	uzwiki = 'en ouzbek',
	vecwiki = 'en vénitien',
	vepwiki = default,
	viwiki = 'en vietnamien',
	vlswiki = 'en flamand occidental',
	vowiki = 'en volapük',
	wawiki = 'en wallon',
	warwiki = 'en waray-waray',
	wuuwiki = default,
	xmfwiki = 'en mingrélien',
	yiwiki = 'en yiddish',
	yowiki = 'en yoruba',
	zeawiki = default,
	zhwiki = 'en chinois',
	zh_classicalwiki = 'en chinois classique',
	zh_min_nanwiki = 'en minnan',
	zh_yuewiki = 'en cantonais',
	zuwiki = default,
}

function p.badgesCategories( frame )
	local entityId = mw.wikibase.getEntityIdForCurrentPage()
	local wikitext = {}
	local categoryNs = mw.site.namespaces[14].name
	if not entityId then
		return ''
	end

	for siteId, suffix in pairs( linkCategorySuffix ) do
			local badges = mw.wikibase.getBadges( entityId, siteId )
			for i, badgeId in ipairs( badges ) do
				if badgesCategory[ badgeId ] then
					local main = badgesCategory[ badgeId ]
					local category = string.format('[[%s:%s]]', categoryNs, main .. ' ' .. suffix )
					table.insert( wikitext, category )
				end
			end
	end
	
	return table.concat( wikitext )
end

return p