A documentação para este módulo pode ser criada em Módulo:WikidataCheck/doc
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