local p =
function p.wikidatacheck(frame) local pframe = frame:getParent local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template
local property = config.property local value = config.value or "" local catbase = config.category local namespaces = config.namespaces local nocatsame = config.nocatsame or "" local ignorecase = config.ignorecase or "" local qid = config.qid or "" local onlysourced = (config.onlysourced
ns then ok = true end end if not ok then -- not in one of the approved namespaces return "" end local entity if qid
"" then return nil -- Using Wikidata end local claims = entity.claims or local hasProp = claims[property] if not hasProp then -- no claim of that property return "" -- bad. Bot needs to add the property end if ignorecase ~= "" then value = string.lower(value) end for i, v in ipairs(hasProp) do -- Now we try to iterate over all possible values? propValue = (v.mainsnak.datavalue or).value if ignorecase ~= "" then propValue = string.lower(propValue) end local sourced = false -- check for external refs a la Module:WikidataIB onlysourced if v.references then for j, vr in ipairs(v.references) do local ref = mw.wikibase.renderSnaks(vr.snaks) if not ref:find("Wiki") then sourced = true break end end end if propValue
"" then return "" -- yay! else return nil -- if nocatsame, the "same as" category is not added end end end return "" -- needs human review :(end
return p