Module:Sandbox/Underlying lk/Wikidatacoordtest

Revision as of 23:33, 21 April 2014 by imported>Underlying lk
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Sandbox/Underlying lk/Wikidatacoordtest/doc

--http://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1590213&format=jsonfm

-- Module:Wikibase
local p = {}
 
-- Return the item ID of the item linked to the current page.
function p.id(frame)
        if not mw.wikibase then
           return "wikibase module not found"
        end
 
        entity = mw.wikibase.getEntity()
 
        if entity == nil then
           return "(no item connected)"
        end
 
        return entity.claims['P281'][0].mainsnak.datavalue.value
end
 
function p.tablew(frame)
	t2 = mw.wikibase.getEntity().claims
	claimsList = {}
	local num = frame.args[1]
	local num = tonumber(num)
	for k, v in pairs(t2) do
		if k == "p281" then
			k = v[0].mainsnak.datavalue.value
		end
		table.insert(claimsList, k)
	end
	return claimsList[num]
end

function p.tableview(frame)
	--{{#invoke:Sandbox/Underlying lk/Wikidatacoordtest|tableview|P281|1162282}}
	-- returns the value of the property P281 having 1162282 as qualifier
	t2 = mw.wikibase.getEntity().claims[frame.args[1]]
	claimsList = {}
	for k,v in pairs(t2) do
		if v.qualifiers then
			--this instance of P281
			--has a qualifier
			qualifiersTable = v.qualifiers
			for key, qualifier in pairs(qualifiersTable) do
				if qualifier[0].datavalue.value["numeric-id"] then
					code = qualifier[0].datavalue.value["numeric-id"]
					if code == tonumber(frame.args[2]) then
						code = v.mainsnak.datavalue.value
						table.insert(claimsList, code)
					end
				end
			end
		end
	end
	return claimsList[1]
end

function p.tabee(frame)
	t2 = mw.wikibase.getEntity().claims['p281']
	claimsList = {}
	local num = frame.args[1]
	local num = tonumber(num)
	for k,v in pairs(t2) do
		k = v.mainsnak.datavalue.value
		k = v.references[0].snaks["P248"][0].datavalue.value['numeric-id']
		table.insert(claimsList, k)
	end
	return claimsList[num]
end
 
return p