Marvel Wiki
Advertisement
Marvel Wiki
4 556
páginas

A documentação para este módulo pode ser criada em Módulo:Realidade/doc

local p = {}
local h = require("Módulo:HF")
local getArgs = require('Dev:Arguments').getArgs
local lista_de_realidades = mw.loadData( 'Módulo:Desambiguação/Realidades' )
--nomes especiais_locais = { "Mojoverso", "Ideiaverso", "Cidade Brilhante", "Outro Mundo", "Mundo Estranho", "Realidade Desconhecida", "Desconhecido" }

--------------------------------------------------------------------------------
function p.classificar_pela_realidade(frame)
	local function classificar_nome(realidade_numero)
		if tonumber(realidade_numero) ~= nil
			then output = string.rep('0', 15-#realidade_numero)..realidade_numero
			else output = realidade_numero
		end
		return output
	end
    local args = getArgs (frame)
    local value = args[1]
    local nome
    local realidade
    local info
    local output = ''
    
    if not h.isempty(value)
    	then
    		nome, realidade = p.lua_get_nome_e_realidade(value)
    		if realidade ~= ''
    			then 
    				if nome ~= ''
    					then output = nome..' ('..realidade.padded_numero..')'
    					else output = realidade.padded_numero
    				end
    			else output = value
    		end
    end
    
    return output
end


--------------------------------------------------------------------------------
-- separe 'pagename' em nome e realidade. Se a realidade não estiver vazia, as informações sobre ela são retornadas de 'lista_de_realidades'
function p.lua_get_nome_e_realidade(pagename)
    local s_reverse
    local s_nome = pagename
    local info = {}
    local s_realidade = {}
    local i
 
    if not h.isempty(pagename)
        then
            pagename = string.gsub(pagename,'_',' ')
            s_reverse = string.reverse(pagename)
            i = string.find(s_reverse,'( ',1,true)
            j = string.find(s_reverse,')',1,true)
            if not h.isempty(i)
                then
                    s_nome = string.reverse( string.sub(s_reverse, i+2, #s_reverse) )
                    s_realidade = string.reverse( string.sub(s_reverse, j+1, i-1) )
                    info = p.get_realidade_info({s_realidade})
                    if not h.isempty(info)
                        then s_realidade = info
                        else s_realidade = ''
                    end
                else
                    info = p.get_realidade_info({pagename})
                    if not h.isempty(info)
                        then 
                        	s_nome = ''
                        	s_realidade = info
                        else 
                        	s_nome = pagename
                        	s_realidade = ''
                    end
            end
    end
 
    return s_nome, s_realidade
end


--------------------------------------------------------------------------------
function p.get_realidade_info(frame)
    local args = getArgs (frame)
    local realidade = args[1]
    local parte = args[2]
    local info
    local s2
    local s3
    local output = ''

    if not h.isempty(realidade)
        then
            realidade = string.gsub(realidade, 'Terra%-', '')
            info = lista_de_realidades[realidade]
            if info ~= nil
                then output = { 
                				['nome'] = info[2], 
                				['descricao'] = info[1], 
                				['tipo'] = info[3], 
                				['numero'] = realidade,
                				['padded_numero'] = p.padded_numero_da_realidade(realidade),
                			}
                elseif tonumber(realidade) ~= nil or string.match(realidade, '^TRN%d+') ~= nil
                    then output = { 
                    				['nome'] = "Terra-"..realidade, 
                    				['descricao'] = "Terra-"..realidade, 
                    				['tipo'] = "Quadrinho", 
                    				['numero'] = realidade,
                    				['padded_numero'] = p.padded_numero_da_realidade(realidade),
                    			}
                    --outra saída = { ['nome'] = realidade, ['descrição'] = realidade, ['tipo'] = "Quadrinho" }
            end
    end
 
    if not h.isempty(parte)
        then
            parte = tonumber(parte)
            if parte == 3
                then output = output.type
                elseif parte == 2
                    then output = output.descricao
                else output = output.nome
            end
    end
 
    return output
end

--------------------------------------------------------------------------------
function p.padded_numero_da_realidade(realidade_numero)
	local output = ''
	
	if tonumber(realidade_numero) ~= nil
		then output = 'Terra-'..string.rep('0', 15-#realidade_numero)..realidade_numero
		elseif string.find(realidade_numero, 'TRN') ~= nil
			then output = 'Terra-'..realidade_numero
		else
			output = realidade_numero
	end
	
	return output
end


return p
Advertisement