Módulo:Categorizar PE
A documentação para este módulo pode ser criada na página Módulo:Categorizar PE/doc
local p = {}
function p.ano(frame)
local var = frame.args[1]
-- Verifica se a página não é do domínio Wikipédia (número 4)
if mw.title.getCurrentTitle().namespace ~= 4 then
return ""
end
-- Caso o parâmetro esteja no formato DD-MM-YY
if string.match(var, "%d%d%-%d%d%-%d%d") then
return "[[Category:!Propostas de eliminação encerradas em 20" .. string.sub(var, -2) .. "]]"
end
-- Caso o parâmetro esteja no formato YYYY
if string.len(var) == 4 then
local year = tonumber(var)
if year and year >= 2000 and year <= 2099 then
return "[[Category:!Propostas de eliminação encerradas em " .. tostring(year) .. "]]"
else
return "[[Category:!Propostas de eliminação encerradas sem ano reconhecido]]"
end
end
-- Caso o parâmetro esteja no formato YYYYMMDD
if string.len(var) == 8 then
local firstFourDigits = tonumber(string.sub(var, 1, 4))
-- Verify if the first four digits are between 2000 and 2099
if firstFourDigits and firstFourDigits >= 2000 and firstFourDigits <= 2099 then
return "[[Category:!Propostas de eliminação encerradas em " .. tostring(firstFourDigits) .. "]]"
end
end
-- Divide o parâmetro usando " " ou "-" ou "/" ou "" como separador
local str = mw.text.split(var, "[ %-/]")
local reversedStr = {}
-- Inverte a ordem dos elementos da array
for i = #str, 1, -1 do
table.insert(reversedStr, str[i])
end
-- Procura por um elemento que tenha 4 dígitos, buscando a partir do último elemento
for _, substr in ipairs(reversedStr) do
if tonumber(substr) and string.len(substr) == 4 then
return "[[Category:!Propostas de eliminação encerradas em " .. substr .. "]]"
end
end
-- Caso tudo tenha dado errado...
return "[[Category:!Propostas de eliminação encerradas sem ano reconhecido]]"
end
return p