پودمان:WikidataCommonscat
ظاهر
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
local catbase = config.category
local namespaces = config.namespaces
local ok = false -- one-way flag to check if we're in a good 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 -- not in one of the approved namespaces
return "Using of template Commonscat in the namespace in which you have clicked to the link that lead you here is not allowed (only allowed namespaces are 0, 6, 14, and 100)."
end
local entity = mw.wikibase.getEntityObject()
if not entity then -- no Wikidata item
return "not in Wikidata"
end
local claims = entity.claims or {}
local hasProp = claims[property]
if not hasProp then -- no claim of that property
return "not in Wikidata" -- bad. Bot needs to add the property
end
local propValue = hasProp[1].mainsnak.datavalue.value -- This should eventually iterate over all possible values?
if propValue == value then
return value -- yay!
else
return propValue -- needs human review :(
end
end
return p