Module:Sandbox/Rexxs/PropIDs

-- This is used to get the QIDs of all of the values of a property, as a comma separated list if multiple values exist -- Usage: -- Usage:

local p = {}

p.getPropertyIDs = function(frame) local propertyID = mw.text.trim(frame.args[1] or "") local input_parm = mw.text.trim(frame.args[2] or "") -- can take a named parameter |qid which is the Wikidata ID for the article. This will not normally be used. local qid = frame.args.qid if qid and (#qid == 0) then qid = nil end if input_parm == "FETCH_WIKIDATA" then local entity = mw.wikibase.getEntityObject(qid) local propclaims if entity and entity.claims then propclaims = entity.claims[propertyID] end if propclaims then -- if wiki-linked value collect the QID in a table if (propclaims[1] and propclaims[1].mainsnak.snaktype == "value" and propclaims[1].mainsnak.datavalue.type == "wikibase-entityid") then local out = {} for k, v in pairs(propclaims) do out[#out + 1] = "Q" .. v.mainsnak.datavalue.value["numeric-id"] end return table.concat(out, ", ") else -- not a wikibase-entityid, so return empty return "" end else -- no claim, so return empty return "" end else return input_parm end end

return p