Module:Professional wrestling profiles/sandbox

local data = {
	{"cagematch", "http://www.cagematch.net/?id=2&nr=$1", "Cagematch.net", "P2728"},
	{"wrestlingdata", "http://wrestlingdata.com/index.php?befehl=bios&wrestler=$1", "Wrestlingdata.com", "P2764"},
	{"iwd", "http://www.profightdb.com/wrestlers/$1.html", "Internet Wrestling Database", "P2829"}
}

local alone = {
	{"http://www.cagematch.net/?id=2&nr=$1", "profile at Cagematch.net", "P2728", nil},
	{"http://www.wrestling-titles.com/personalities/$1/", "profile at Wrestling-Titles.com", nil, "Wrestling Titles template with no id set"},
	{"http://www.rohwrestling.com/wrestlers/roster/$1", "[[Ring of Honor]] profile", nil, nil},
	{"http://www.njpw.co.jp/english/data/detail_profile.php?f=$1", "[[New Japan Pro Wrestling]] profile", nil, nil}
}

local p = {}
local categories = {}
local entity = mw.wikibase.getEntityObject()
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs

function getValue(param,wd)
	local para,wd = param,wd
	
	if para then
		value = para
	elseif entity then
		if entity.claims[wd] then
			local mainsnak = entity.claims[wd][1].mainsnak
		
			if mainsnak.snaktype == 'value' then
				value = mainsnak.datavalue.value
			end
		end
	end

return value or ''

end

function p._profiles(args)
	local title = mw.title.getCurrentTitle()
	local name = args.name or string.gsub(title.text, " %b()", "")
	local prefix = ''
	local text
	local letter = string.sub(name,-1)
	local out = {}
	
	for _,v in ipairs(data) do
		local param, link, title, wdid = unpack(v)
		--local param = args[v[1]]
		--local link = v[2]
		--local wdid = v[3]
		param = args[param]
		value = getValue(param,wdid)

		if value ~='' then
			out[#out+1] = "[" .. string.gsub(link, "$1",value) .. ' ' .. title .. "]"
		end

		value = ''
			
	end
	
	if letter=='s' then
		text = name .. "'"
	else
		text = name .. "'s"
	end
	
	if out[1] then
		prefix = text .. ' profile at '
	end
	
	return prefix .. mw.text.listToText(out, ', ', ', ' )
end	

function p.profiles(frame)
	local args = getArgs(frame)
	return p._profiles(args)
end

return p