Módulo:WikidataCheck
Este módulo pode ter sua documentação deficiente. Por favor, documente-o ou melhore suas explicações caso o saiba usar ou tenha conhecimentos para tal. |
Este módulo depende dos seguintes outros módulos: |
Esta predefinição permite comparar um parâmetro da predefinição a uma propriedade da Wikidata. Ele funciona através do módulo Lua Módulo:WikidataCheck.
Pode fazer uma chamada ao módulo desta maneira : {{WikidataCheck|property=p###|value={{{value|}}}|categoria=Category prefix|namespaces=0,14}}
|property=
é a propriedade de p###. O "p" deve ser em minúscula.|value=
é o valor que se usa da predefinição. Este deve ser algo assim{{{id|}}}
|category=
é o prefixo usado antes dos nomes das categorias. A categoria criada são "[prefix] não no Wikidata", "[prefix] mesmo que no Wikidata", e "[prefix] diferente do Wikidata".- É recomendado que você crie estas categorias com
{{Categoria oculta}}
antes de aplicar esta predefinição.
- É recomendado que você crie estas categorias com
|namespaces=
é uma lista númerica separada por vírgulas dos nomes de domínio que se aplicam nesta predefinição. O valor padrão é 0, o qual é o domínio de artigos.
- Exemplo
Para a predefinição {{MusicBrainz artista}}
, o código seguinte e o que se adiciona:
{{WikidataCheck|property=p343|value={{{mbid|{{{id|{{{1|}}}}}}}}}|category=MusicBrainz artist id|namespaces=0}}
Ver também
{{Tracks Wikidata}}
local p = {}
function p.wikidatacheck(frame)
local pframe = frame:getParent()
local config = frame.args -- os argumentos passados PELA predefinição, no wikitexto da própria predefinição
local args = pframe.args -- os argumentos passados PARA a predefinição, no wikitexto que transclui a predefinição
local property = config.property
local value = config.value or ""
local catbase = config.category
local namespaces = config.namespaces
local ok = false -- marcação de uma só forma para verificar se está em um bom namespace
local ns = mw.title.getCurrentTitle().namespace
for v in mw.text.gsplit( namespaces, ",", true) do
if tonumber(v) == ns then
ok = true
end
end
if not ok then -- não está um dos namespaces aprovados
return ""
end
local entity = mw.wikibase.getEntityObject()
if not entity then -- sem item do Wikidata
return "[[Categoria:!" .. catbase .. " que não está no Wikidata]]"
end
local claims = entity.claims or {}
local hasProp = claims[property]
if not hasProp then -- nenhuma reivindicação desta propriedade
return "[[Categoria:!" .. catbase .. " que não está no Wikidata]]" -- ruim. Os bots precisam adicionar a propriedade
end
local propValue = hasProp[1].mainsnak.datavalue.value -- Esta deve, eventualmente, iterar sobre todos os valores possíveis?
if value == "" then
return nil -- Usando o Wikidata
elseif propValue == value then
return "[[Categoria:!" .. catbase .. " igual ao Wikidata]]" -- yay!
else
return "[[Categoria:!" .. catbase .. " diferente do Wikidata]]" -- necessita de revisão humana :(
end
end
return p