Modul:Sandlådan/Innocent bystander/WD2

Från Wikipedia
Hoppa till: navigering, sök

Dokumentationen för denna modul kan skapas på Modul:Sandlådan/Innocent bystander/WD2/dok

local wikidata = require('Modul:Wikidata2').formatStatementsFromLua
local datum = require('Modul:Wikidatadatum').datum

function test(item, claim)
	local f = false
	for k, v in pairs(claim) do
		if v.item == item then 
			return true
		end
	end
	return false
end

function test2(item, claim)
	local f = false
	for k, v in pairs(claim) do
		if v == item then 
			return true
		end
	end
	return false
end

function komprimera(a, c, yrke)
	if not a or #a == 0 then 
		return ''
	end
	if not test(yrke, a) then
		return a
	end
	local b = {}
	for i, j in pairs(a) do
		if not test2(j.item, c) then
			table.insert(b, j)
		end
	end
	return b
end

p = {}

function p.sysselsattning(frame)
	local args = frame:getParent().args
	local qid = args.qid or ''
	local entity = {}
	if qid == '' then 
		entity = mw.wikibase.getEntityObject()
	else
		entity = mw.wikibase.getEntityObject( qid )
	end

	local a = wikidata({entity = entity, property = 'P106', firstversalisering = 'ucfirst' , noref = 'noimport', rank = 'valid', raw = 'true'})
	if not a or #a == 0 then 
		return ''
	end
	a = komprimera(a, {'Q482980', 'Q15980158', 'Q3745071', 'Q18844224', 'Q6625963'}, 'Q36180') -- författare
	a = komprimera(a, {'Q2998308', 'Q752129', 'Q16742203', 'Q15143181', 'Q11063'}, 'Q169470') -- fysiker
		
	local q = {}
	for i, j in pairs(a) do
		table.insert(q, j.value .. (j.ref or ''))
	end
	return table.concat(q, ', ')
end

return p