Module:Sandbox/Nathan fraignt/Wikidata

Revision as of 21:43, 1 December 2018 by imported>Nathan fraignt
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Sandbox/Nathan fraignt/Wikidata/doc

local p = {}
p.getPersonDataTable = function(frame)
	local getName = function (entityId)
		local givenNameId = mw.wikibase.getBestStatements( entityId,  "P735" )[1].mainsnak.datavalue.value.id or ""
		local givenName = mw.wikibase.getLabel(givenNameId) or ""
		local lastNameId = mw.wikibase.getBestStatements( entityId,  "P734" )[1].mainsnak.datavalue.value.id or ""
		local lastName = mw.wikibase.getLabel(lastNameId) or ""
		return givenName .. " " .. lastName
	end
	local getData = function (entityId, propId)
		local dataTable = mw.wikibase.getBestStatements( entityId, propId )
		local dataString = ""
		for k,v in pairs(dataTable) do
			local dataId = mw.wikibase.getSitelink(v.mainsnak.datavalue.value.id) or mw.wikibase.getLabel(v.mainsnak.datavalue.value.id) or ""
			dataString = dataString .. "[[" .. dataId .. "]]" .. "<br>"
		end
		return dataString
	end
	
	local createTable = function(entityId)
		local tableString = '{| class="wikitable" \n'
		local tableStringEnd = "\n|}" 
		local tableLinePrefix = "\n |- \n"
		tableString = tableString .. tableLinePrefix .. "| Name || " .. getName(entityId)
		tableString = tableString .. tableLinePrefix .. "| Place of Birth || " .. getData(entityId, "P19")
		tableString = tableString .. tableLinePrefix .. "| Occupation || " .. getData(entityId, "P106")
		tableString = tableString .. tableLinePrefix .. "| Spouse || " .. getData(entityId, "P26")
		return tableString .. tableStringEnd
	end
	
	entityId = frame.args[1]
	return createTable(entityId)
	
end
return p