Módulo:Resolve category redirect

De Enciclopédia de conhecimento da Igreja de Deus
Ir para a navegação Ir para a procura

A documentação para este módulo pode ser criada na página Módulo:Resolve category redirect/doc

local p = {}
--Returns the target of {{Category redirect}}, if it exists, else returns the original cat.
function rtarget( cat )
	local catcontent = mw.title.new( cat or '', 'Categoria' ):getContent()
	if string.match( catcontent or '', '{{ *[Cc]at' ) then
		local regex = {
			--the following 11 pages (6 condensed) redirect to [[Template:Category redirect]], in descending order, as of 9/2022:
			'{{ *[Cc]ate?g?o?r?y?[ _]*[rR]edirect', --505+312+243+1 transclusions
			'{{ *[Cc]atr',       --21
			'{{ *[Cc]at[ _]*[rR]edir',    --5+3
			'{{ *[Cc]at[ _]*[rR]ed',    --3+2
			'{{ *[Cc]at[ _]*[mM]ove',    --1
			'{{ *[Cc]ategory[ _]*[mM]ove',   --0
		}
		for _, v in pairs (regex) do
			local rtarget = mw.ustring.match( catcontent, v..'%s*|%s*([^|}]+)' )
			if rtarget then
				rtarget = mw.ustring.gsub(rtarget, '^1%s*=%s*', '')
				rtarget = string.gsub(rtarget, '^[Cc]ategoria:', '')
				return rtarget
			end
		end
	end
	return cat
end
function p.main( frame )
	local args = frame:getParent().args
	local cat  = args[1]
	
	if (cat == '') or (cat == nil) then
		return ''
	end
	return rtarget( cat )
end
return p