Hoppa till innehållet

Modul:Faktamall biografi WD/Aux

Från Wikipedia

Dokumentationen för denna modul kan skapas på Modul:Faktamall biografi WD/Aux/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 args.wdid or ''
	local avoid_activity = frame.args.avoid_activity
	local entity = {}
	if qid == '' then 
		entity = mw.wikibase.getEntityObject()
	else
		entity = mw.wikibase.getEntityObject( qid )
	end

	local a = wikidata({entity = entity, property = 'P106', sortingproperty='P1545', sortbyvalue = 'ascending', firstversalisering = 'ucfirst' , noref = 'noimport', 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
	a = komprimera(a, {'Q948329', 'Q10800557', 'Q2259451', 'Q10798782'}, 'Q33999') -- skådespelare
		
	local q = {}
	local felkat = ''
	for i, j in pairs(a) do
		if avoid_activity and j.item and wikidata({entity = mw.wikibase.getEntityObject(j.item), property = 'P3095'}) ~= nil then
			felkat = '[[Kategori:Wikipedia:Sidor med Faktamall biografi WD där Wikidataobjektet har ett värde för P106 som har egenskapen P3095]]' 
		else
			table.insert(q, j.value .. (j.ref or ''))
		end
	end
	return table.concat(q, ', ') .. felkat
end

return p