Módulo:Teste: diferenças entre revisões

Fonte: eViterbo
Saltar para a navegação Saltar para a pesquisa
Sem resumo de edição
Sem resumo de edição
Etiqueta: Reversão manual
 
(Há 46 edições intermédias do mesmo utilizador que não estão a ser apresentadas)
Linha 1: Linha 1:
local p = {}
local p = {}


function p.foo(frame)
local function unknownValue(snak, label)
     return mw.wikibase.getDescription('Q4')
    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
end


function p.qualifiers(frame)
local function noValue(displayformat)
  local entity = mw.wikibase.getEntity("Q4")
    if not displayformat then
  local snak = entity['claims']['P26']
        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)


  return mw.wikibase.formatValue( snak )
end
end


function p.entidade(frame)
function p.getInstituicao_e_Local(frame)
local entity = trim(frame.args[1])
    local num_entidade = frame.args.numentidade
if not entity:match('^[QP]%d{1,10}$') then
    local cod_propriedade = frame.args.propriedade
entity = mw.wikibase.resolvePropertyId(entity) or entity
    local cod_prop_raiz = frame.args.propriedaderaiz
end
    local entity = mw.wikibase.getEntity(frame.args[1])
-- entity = mw.wikibase.getEntity(trim(frame.args[2]) or nil)
    local property = getEntityQualifierProperty(entity, frame.args)
if entity == '' then
    local snak = property[1]['datavalue']['value']['id']
entity = mw.wikibase.getEntity()
    return snak
if entity == nil or entity.claims == nil then return 'No wikidata entity' end
else
entity = mw.wikibase.getEntity(entity)
if entity == nil then
return 'No wikidata entity: ' .. frame.args[1]
end
end
end
end


return p
return p

Edição atual desde as 21h12min de 22 de novembro de 2022

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