Módulo:Teste

Fonte: eViterbo
Saltar para a navegação Saltar para a pesquisa

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

local p = {}

local function unknownValue(snak, label)
    local str = label

    if type(str) == "function" then
        str = str(snak)
    end

    if (not str) then
        if snak.datatype == 'time' then
            str = wd.translate('sometime')
        else
            str = wd.translate('somevalue')
        end
    end

    if type(str) ~= "string" then
        return formatError(snak.datatype)
    end
    return str
end

local function noValue(displayformat)
    if not displayformat then
        return wd.translate('novalue')
    end
    if type(displayformat) == 'string' then
        return displayformat
    end
    return formatError()
end



function p.getNomeEntidade(frame)
    local num_entidade = frame.args.numentidade
    local cod_prop_raiz = frame.args.propriedaderaiz
    local entity = mw.wikibase.getEntity(frame.args[1])
    local nome_entidade = entity['claims'][cod_prop_raiz][tonumber(num_entidade)]['mainsnak']['datavalue']['value']['id']
    return nome_entidade
end

function p.getLabel(frame)
    local entity = mw.wikibase.getEntity(frame.args[1])
    id = mw.text.trim(frame.args[1])
    return mw.wikibase.label(id)
end

function getEntityQualifierProperty(entity, args)
    local num_entidade = tonumber(args.numentidade)
    local cod_propriedade = args.propriedade
    local cod_prop_raiz = args.propriedaderaiz
    local entity = mw.wikibase.getEntity(args[1])
    local raiz_property = entity["claims"][cod_prop_raiz]
    local qualifiers = raiz_property[num_entidade] and raiz_property[num_entidade]['qualifiers']

    return qualifiers and qualifiers[cod_propriedade] or nil
end

function p.getDateQualifiers(frame)
    local data_str = nil
    local num_entidade = frame.args.numentidade
    local cod_propriedade = frame.args.propriedade
    local cod_prop_raiz = frame.args.propriedaderaiz
    local dia = frame.args.dia
    local mes = frame.args.mes
    local ano = frame.args.ano
    local entity = mw.wikibase.getEntity(frame.args[1])
    local property = getEntityQualifierProperty(entity, frame.args)
    if ((property ~= nil) and (property[1]['datavalue'] ~= nil)) then
        local snak = property[1]['datavalue']['value']['time']
        _, _, y, m, d = string.find(snak, "(%d+)-(%d+)-(%d+)")
        dia = d
        mes = m
        ano = y
        if (tonumber(d) and tonumber(m) and tonumber(y) > 0) then
            data_str = d .. '/' .. m .. '/' .. y
        elseif (tonumber(m) and tonumber(y) > 0) then
            data_str = m .. '/' .. y
        elseif (tonumber(y) > 0) then
            data_str = y
        end
    end
    return data_str
end

function p.getDateQualifiersDia(frame)
    local data_str = nil
    local num_entidade = frame.args.numentidade
    local cod_propriedade = frame.args.propriedade
    local cod_prop_raiz = frame.args.propriedaderaiz
    local entity = mw.wikibase.getEntity(frame.args[1])
    local property = getEntityQualifierProperty(entity, frame.args)
    if ((property ~= nil) and (property[1]['datavalue'] ~= nil)) then
        local snak = property[1]['datavalue']['value']['time']
        _, _, y, m, d = string.find(snak, "(%d+)-(%d+)-(%d+)")
    end

    if (tonumber(d) == 0) then d = '' end
    return (d)

end

function p.getDateQualifiersMes(frame)
    local data_str = nil
    local num_entidade = frame.args.numentidade
    local cod_propriedade = frame.args.propriedade
    local cod_prop_raiz = frame.args.propriedaderaiz
    local entity = mw.wikibase.getEntity(frame.args[1])
    local property = getEntityQualifierProperty(entity, frame.args)
    if ((property ~= nil) and (property[1]['datavalue'] ~= nil)) then
        local snak = property[1]['datavalue']['value']['time']
        _, _, y, m, d = string.find(snak, "(%d+)-(%d+)-(%d+)")
    end

    if (tonumber(m) == 0) then m = '' end
    return (m)

end

function p.getDateQualifiersAno(frame)
    local data_str = nil
    local num_entidade = frame.args.numentidade
    local cod_propriedade = frame.args.propriedade
    local cod_prop_raiz = frame.args.propriedaderaiz
    local entity = mw.wikibase.getEntity(frame.args[1])
    local property = getEntityQualifierProperty(entity, frame.args)
    if ((property ~= nil) and (property[1]['datavalue'] ~= nil)) then
        local snak = property[1]['datavalue']['value']['time']
        _, _, y, m, d = string.find(snak, "(%d+)-(%d+)-(%d+)")
    end

    if (tonumber(y) == 0) then y = '' end
    return (y)

end

function p.getInstituicao_e_Local(frame)
    local num_entidade = frame.args.numentidade
    local cod_propriedade = frame.args.propriedade
    local cod_prop_raiz = frame.args.propriedaderaiz
    local entity = mw.wikibase.getEntity(frame.args[1])
    local property = getEntityQualifierProperty(entity, frame.args)
    local snak = property[1]['datavalue']['value']['id']
    return snak
end

return p