Módulo:Teste: diferenças entre revisões
Saltar para a navegação
Saltar para a pesquisa
(Criou a página com "local mymodule = {} function mymodule.foo() print("Hello World!") end return mymodule") |
Sem resumo de edição Etiqueta: Reversão manual |
||
| (Há 78 edições intermédias do mesmo utilizador que não estão a ser apresentadas) | |||
| Linha 1: | Linha 1: | ||
local | local p = {} | ||
function | 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 | end | ||
return | return p | ||
Edição atual desde as 19h12min 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