Módulo:Teste: diferenças entre revisões
Saltar para a navegação
Saltar para a pesquisa
(getEntityQualifierProperty: add another check for properties) |
(teste get nome entidade) |
||
Linha 7: | Linha 7: | ||
local nome_entidade = | local nome_entidade = | ||
entity['claims'][cod_prop_raiz][tonumber(num_entidade)]['mainsnak']['datavalue']['value']['id'] | entity['claims'][cod_prop_raiz][tonumber(num_entidade)]['mainsnak']['datavalue']['value']['id'] | ||
return nome_entidade | return nome_entidade or nil | ||
end | end | ||
Revisão das 17h18min de 17 de novembro de 2022
A documentação para este módulo pode ser criada na página Módulo:Teste/doc
local p = {} 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 or nil 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