Module:Discogs

Uit Wikipedia, de vrije encyclopedie
Moduledocumentatie​[bekijk] [bewerk] [ververs] [geschiedenis]

Voor Sjabloon:Link Discogs.

local p = {}

local props = {
	artist  = 'P1953',
	master  = 'P1954',
	label   = 'P1955',
	release = 'P2206',
};

local function arg(frame, key)
	local arg = frame.args[key]
	if arg and #arg > 0 then
		return arg
	end
end

function p.link(frame)
	local id, soort, label
	id = arg(frame, 'id')		-- required iff there is no property on Wikidata
	soort = arg(frame, 'soort')	-- required (currently)
	label = arg(frame, 'label')	-- optional, defaults to {{PAGENAMEBASE}}
	
	if not soort then
		return frame:expandTemplate{ title='Error', args={
			"Fout: ontbrekende waarde voor parameter '''soort'''. Verwacht wordt ''artist'', ''label'', ''master'' of ''release''"} }
	end
	local prop = props[soort]
	if not prop then
		return frame:expandTemplate{ title='Error', args={
			"Fout: verkeerde waarde voor parameter '''soort'''. Verwacht wordt ''artist'', ''label'', ''master'' of ''release''"} }
	end

	if not id then
		local entity = mw.wikibase.getEntity()
		if entity then
			local pv = entity:formatPropertyValues(prop)
			if pv and pv.value and #pv.value > 0 then
				id = pv.value
			end
		end
	end
	if not id then
		return frame:expandTemplate{ title='Error', args={"Fout: geen ''id'' gevonden"} }
	end
	
	if not label then
		label = frame:expandTemplate{ title='PAGENAMEBASE', args={} }
	end
	if soort == 'master' or soort == 'release' then
		label = "''" .. label .. "''"
	end
	
	return frame:expandTemplate{ title='en', args={} } .. 
		' [https://www.discogs.com/' .. soort .. '/' .. id .. ' ' .. label ..
		'] op [[Discogs]]'
end

return p