Saltar para o conteúdo

Módulo:CategoriaNM

Origem: Wikiquote, a coletânea de citações livre.

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

-- Módulo para implementar predefinição:NM sem controle de autoridade

local p = {}
local Ferramentas = require 'Módulo:Ferramentas'

local function addCat(cat)
        return  '[[Category:' .. cat .. ']]'
end

function p.nascimento(frame, ...)
    local args = Ferramentas.extractArgs( frame, ... )
    local nascimento = args[1]
    local wikitext = '' -- cadeia devolvida com cats de monitoramento
    local title = mw.title.getCurrentTitle()
    if title.namespace ~= 0 and title.namespace ~= 14 then
        return ''
    end
    if not Ferramentas.notEmpty(nascimento) then
        wikitext = wikitext .. addCat('Nascidos em ano desconhecido')
        return wikitext
    end
   
    nascimento = Ferramentas.trim(nascimento)
    local m = string.upper(nascimento)
    local decada = nascimento:gsub("^[D]", 'd')
    local seculo = nascimento:gsub("^[S]", 's')
    if m == 'MISSING' or m == 'UNKNOWN' or m == '?' or m == 'DESCONHECIDO' or not Ferramentas.notEmpty(nascimento) then
        -- nenhuma mensagem de erro que possa travar a função de chamada
        -- para ela gerenciar esse retorno.
        wikitext = wikitext .. addCat('Nascidos em ano desconhecido')
    elseif string.match(decada, 'década' ) then
        wikitext = wikitext .. addCat('Nascidos na ' .. decada)
    elseif string.match(seculo, 'século' ) then
        wikitext = wikitext .. addCat('Nascidos no ' .. seculo)
    elseif string.match(nascimento, 'a.C.' ) or tonumber( nascimento ) then     
        wikitext = wikitext .. addCat('Nascidos em ' .. nascimento)
    else
        wikitext = wikitext .. addCat('Nascidos em ano desconhecido')
    end
end

function p.morte(frame, ...)
    local args = Ferramentas.extractArgs( frame, ... )
    local nascimento, morte = args[1], args[2]
    local wikitext = '' -- cadeia devolvida com cats de monitoramento
    local title = mw.title.getCurrentTitle()
    if title.namespace ~= 0 and title.namespace ~= 14 then
        return ''
    end
    nascimento = Ferramentas.trim(nascimento)
    morte = Ferramentas.trim(morte)
    if not Ferramentas.notEmpty(nascimento) and not Ferramentas.notEmpty(morte) then
        wikitext = wikitext .. addCat('!Artigos que usam a predefinição NM sem data')
    return wikitext
    end
   
    local m = string.upper( nascimento or '')
    if m == 'MISSING' or m == 'UNKNOWN' or m == '?' or m == 'DESCONHECIDO' or not Ferramentas.notEmpty(nascimento) then
        -- nenhuma mensagem de erro que possa travar a função de chamada
        -- para ela gerenciar esse retorno.
        wikitext = wikitext .. addCat('Nascidos em ano desconhecido')
    else 
        local decada = nascimento:gsub("^[D]", 'd') or ''
        local seculo = nascimento:gsub("^[S]", 's') or ''
        if string.match(decada, 'década' ) then
            wikitext = wikitext .. addCat('Nascidos na ' .. decada)
        elseif string.match(seculo, 'século' ) then
            wikitext = wikitext .. addCat('Nascidos no ' .. seculo)
        elseif string.match(nascimento, 'a.C.' ) or tonumber( nascimento ) then     
            wikitext = wikitext .. addCat('Nascidos em ' .. nascimento)
        else
            wikitext = wikitext .. addCat('Nascidos em ano desconhecido')
        end
    end

---- morte
    m = string.upper( morte or '')
    if m == 'LIVING' or m == 'VIVA' then
        wikitext = wikitext .. addCat('Pessoas vivas')
    elseif m == 'MISSING' or m == 'UNKNOWN' or m == '?' or m == 'DESCONHECIDO' or not Ferramentas.notEmpty(morte) then
        wikitext = wikitext .. addCat('Mortos em ano desconhecido')
    else
        decada = morte:gsub("^[D]", 'd') or ''
	seculo = morte:gsub("^[S]", 's') or ''
	if string.match(decada, 'década' ) then
    	    wikitext = wikitext .. addCat('Mortos na ' .. decada)
	elseif string.match(seculo, 'século' ) then
            wikitext = wikitext .. addCat('Mortos no ' .. seculo)
        elseif string.match(morte, 'a.C.' ) or tonumber( morte ) then
            wikitext = wikitext .. addCat('Mortos em ' .. morte)
        else
            wikitext = wikitext .. addCat('Mortos em ano desconhecido')
        end
     end
    return wikitext   
end

function p.main( frame )
	return p.morte( frame )
end

return p