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