Módulo:Categorización de buenos y destacados

Uso


local p = { }

local badgesList = {
	Q6540291 = 'portales destacados',
	Q6540326 = 'tópico destacado',
	Q17437796 = 'artículo destacado',
	Q17437798 = 'artículo bueno',
	Q17506997 = 'anexo destacado',
	Q17507019 = 'Sabías que',
	Q17559452 = 'artículo recomendado',
	Q17580674 = 'portal destacado',
	Q17580678 = 'artículo de calidad alta',
	Q17580679 = 'artículo de calidad media',
	Q17580680 = 'artículo de calidad baja',
	Q17580682 = 'artículo de alta importancia',
}

local badgesCategory = {
	Q17437796 = 'Wikipedia:Artículos destacados',
	Q17437798 = 'Wikipedia:Artículos buenos',
	Q17506997 = 'Wikipedia:Anexos destacados',
}

local linkCategoryPrefix = { 
	default = '',
}

local linkCategorySuffix = { 
	default = ' en otras ediciones de Wikipedia',
	afwiki = ' en la Wikipedia en afrikáans',
	alswiki = ' en la Wikipedia en alemánico',
	amwiki = ' en la Wikipedia en amhárico',
	anwiki = ' en la Wikipedia en aragonés',
	arwiki = ' en la Wikipedia en árabe',
	arzwiki = ' en la Wikipedia en árabe egipcio',
	astwiki = ' en la Wikipedia en asturiano',
	aswiki = ' en la Wikipedia en asamés',
	azwiki = ' en la Wikipedia en azerí',
	bawiki = ' en la Wikipedia en baskir',
	barwiki = ' en la Wikipedia en austro-bávaro',
	bat_smgwiki = ' en la Wikipedia en samogitiano',
	bewiki = ' en la Wikipedia en bielorruso',
	be_taraskwiki = ' en la Wikipedia en bielorruso (taraškievica)',
	bgwiki = ' en la Wikipedia en búlgaro',
	bnwiki = ' en la Wikipedia en bengalí',
	bpywiki = ' en la Wikipedia en bishnupriya manipuri',
	brwiki = ' en la Wikipedia en bretón',
	bswiki = ' en la Wikipedia en bosnio',
	cawiki = ' en la Wikipedia en catalán',
	cdowiki = ' en la Wikipedia en min dong',
	cebwiki = ' en la Wikipedia en cebuano',
	cewiki = ' en la Wikipedia en checheno',
	ckbwiki = ' en la Wikipedia en kurdo soraní',
	cswiki = ' en la Wikipedia en checo',
	cvwiki = ' en la Wikipedia en chuvasio',
	cywiki = ' en la Wikipedia en galés',
	dawiki = ' en la Wikipedia en danés',
	dewiki = ' en la Wikipedia en alemán',
	diqwiki = ' en la Wikipedia en zazaki',
	dtywiki = ' en la Wikipedia en dotelí',
	dvwiki = ' en la Wikipedia en divehi',
	elwiki = ' en la Wikipedia en griego',
	eswiki = '',
	simplewiki = ' en la Wikipedia en inglés simple',
	enwiki = ' en la Wikipedia en inglés',
	eowiki = ' en la Wikipedia en esperanto',
	etwiki = ' en la Wikipedia en estonio',
	euwiki = ' en la Wikipedia en euskera',
	extwiki = ' en la Wikipedia en extremeño',
	fawiki = ' en la Wikipedia en persa',
	fiwiki = ' en la Wikipedia en finés',
	fowiki = ' en la Wikipedia en feroés',
	frwiki = ' en la Wikipedia en francés',
	frrwiki = ' en la Wikipedia en frisón septentrional',
	fywiki = ' en la Wikipedia en frisón',
	gawiki = ' en la Wikipedia en irlandés',
	gdwiki = ' en la Wikipedia en gaélico escocés',
	glwiki = ' en la Wikipedia en gallego',
	guwiki = ' en la Wikipedia en guyaratí',
	gvwiki = ' en la Wikipedia en manés',
	hewiki = ' en la Wikipedia en hebreo',
	hiwiki = ' en la Wikipedia en hindi',
	hrwiki = ' en la Wikipedia en croata',
	hsbwiki = ' en la Wikipedia en alto sorabo',
	htwiki = ' en la Wikipedia en criollo haitiano',
	huwiki = ' en la Wikipedia en húngaro',
	hywiki = ' en la Wikipedia en armenio',
	iawiki = ' en la Wikipedia en interlingua',
	idwiki = ' en la Wikipedia en indonesio',
	iowiki = ' en la Wikipedia en ido',
	iswiki = ' en la Wikipedia en islandés',
	itwiki = ' en la Wikipedia en italiano',
	jawiki = ' en la Wikipedia en japonés',
	jvwiki = ' en la Wikipedia en javanés',
	kawiki = ' en la Wikipedia en georgiano',
	klwiki = ' en la Wikipedia en groenlandés',
	kkwiki = ' en la Wikipedia en kazajo',
	kmwiki = ' en la Wikipedia en camboyano',
	knwiki = ' en la Wikipedia en canarés',
	kowiki = ' en la Wikipedia en coreano',
	krcwiki = ' en la Wikipedia en karachayo-bálkaro',
	kuwiki = ' en la Wikipedia en kurdo',
	kvwiki = ' en la Wikipedia en komi',
	lawiki = ' en la Wikipedia en latín',
	lbwiki = ' en la Wikipedia en luxemburgués',
	lezwiki = ' en la Wikipedia en lezgiano',
	lfnwiki = ' en la Wikipedia en lingua franca nova',
	liwiki = ' en la Wikipedia en limburgués',
	lmowiki = ' en la Wikipedia en lombardo',
	lowiki = ' en la Wikipedia en laosiano',
	ltwiki = ' en la Wikipedia en lituano',
	lvwiki = ' en la Wikipedia en letón',
	maiwiki = ' en la Wikipedia en maithilí',
	map_bmswiki = ' en la Wikipedia en banyumasan',
	mgwiki = ' en la Wikipedia en malgache',
	minwiki = ' en la Wikipedia en minangkabau',
	mkwiki = ' en la Wikipedia en macedonio',
	mlwiki = ' en la Wikipedia en malayalam',
	mnwiki = ' en la Wikipedia en mongol',
	mrwiki = ' en la Wikipedia en maratí',
	mswiki = ' en la Wikipedia en malayo',
	mtwiki = ' en la Wikipedia en maltés',
	mwlwiki = ' en la Wikipedia en mirandés',
	mywiki = ' en la Wikipedia en birmano',
	mznwiki = ' en la Wikipedia en mazandaraní',
	nahwiki = ' en la Wikipedia en náhuatl',
	napwiki = ' en la Wikipedia en napolitano',
	nds_nlwiki = ' en la Wikipedia en bajo sajón neerlandés',
	newiki = ' en la Wikipedia en nepalí',
	nlwiki = ' en la Wikipedia en neerlandés',
	nnwiki = ' en la Wikipedia en noruego (nynorsk)',
	nowiki = ' en la Wikipedia en noruego (bokmål)',
	nvwiki = ' en la Wikipedia en navajo',
	ocwiki = ' en la Wikipedia en occitano',
	olowiki = ' en la Wikipedia en livvi-carelio',
	omwiki = ' en la Wikipedia en oromo',
	orwiki = ' en la Wikipedia en oriya',
	oswiki = ' en la Wikipedia en osetio',
	pamwiki = ' en la Wikipedia en pampango',
	piwiki = ' en la Wikipedia en pali',
	plwiki = ' en la Wikipedia en polaco',
	ptwiki = ' en la Wikipedia en portugués',
	quwiki = ' en la Wikipedia en quechua',
	rowiki = ' en la Wikipedia en rumano',
	ruwiki = ' en la Wikipedia en ruso',
	sawiki = ' en la Wikipedia en sánscrito',
	scnwiki = ' en la Wikipedia en siciliano',
	scowiki = ' en la Wikipedia en escocés',
	sdwiki = ' en la Wikipedia en sindí',
	shwiki = ' en la Wikipedia en serbocroata',
	sewiki = ' en la Wikipedia en sami septentrional',
	siwiki = ' en la Wikipedia en cingalés',
	skwiki = ' en la Wikipedia en eslovaco',
	slwiki = ' en la Wikipedia en esloveno',
	sqwiki = ' en la Wikipedia en albanés',
	srwiki = ' en la Wikipedia en serbio',
	srnwiki = ' en la Wikipedia en sranan tongo',
	stqwiki = ' en la Wikipedia en frisón del Saterland',
	suwiki = ' en la Wikipedia en sondanés',
	svwiki = ' en la Wikipedia en sueco',
	swwiki = ' en la Wikipedia en suajili',
	szlwiki = ' en la Wikipedia en silesiano',
	tawiki = ' en la Wikipedia en tamil',
	tewiki = ' en la Wikipedia en telugú',
	thwiki = ' en la Wikipedia en tailandés',
	tlwiki = ' en la Wikipedia en tagalo',
	tnwiki = ' en la Wikipedia en setsuana',
	trwiki = ' en la Wikipedia en turco',
	ttwiki = ' en la Wikipedia en tártaro',
	ukwiki = ' en la Wikipedia en ucraniano',
	urwiki = ' en la Wikipedia en urdú',
	uzwiki = ' en la Wikipedia en uzbeko',
	vecwiki = ' en la Wikipedia en véneto',
	vepwiki = ' en la Wikipedia en vepsio',
	viwiki = ' en la Wikipedia en vietnamita',
	vlswiki = ' en la Wikipedia en flamenco occidental',
	vowiki = ' en la Wikipedia en volapük',
	wawiki = ' en la Wikipedia en valón',
	warwiki = ' en la Wikipedia en samareño',
	xmfwiki = ' en la Wikipedia en megreliano',
	yiwiki = ' en la Wikipedia en yidis',
	yowiki = ' en la Wikipedia en yoruba',
	zhwiki = ' en la Wikipedia en chino',
	zh_classicalwiki = ' en la Wikipedia en chino clásico',
	zh_min_nanwiki = ' en la Wikipedia en chino min nan',
	zh_yuewiki = ' en la Wikipedia en cantonés',
}

function p.badgesCategories( frame )
	local entity = mw.wikibase.getEntityObject()
	local wikitext = {}
	local categoryNs = mw.site.namespaces[14].name
        if not entity then
                return ''
        end
	
	for siteid, linkTable in pairs( entity.sitelinks ) do
		for i, badgeId in ipairs( entity.sitelinks[ siteid ].badges ) do
			if badgesCategory[ badgeId ] and string.sub(siteid, -4) == 'wiki' then
				local prefix = linkCategoryPrefix[ siteid ] or linkCategoryPrefix.default or ''
				local main = badgesCategory[ badgeId ] or ''
				local suffix = linkCategorySuffix[ siteid ] or linkCategorySuffix.default or ''
				local category = string.format('[[%s:%s]]', categoryNs, prefix .. main .. suffix )
				table.insert( wikitext, category )
			end
		end
	end
	return table.concat( wikitext )
end

function p.hasAnyBadge( frame )
        local entity = mw.wikibase.getEntityObject()
        if not entity then
                return ''
        end
        
        local sitelinks = entity.sitelinks
        
        if not sitelinks then
        	return ''
        end
        for siteid, linkTable in pairs( sitelinks ) do
                if next(sitelinks[ siteid ].badges) ~= nil then
                        return '1'
                end
        end
        return ''
end

return p