Documentation for this module may be created at Module:Player/doc
local getFlag = require('Module:Localisation').getCountryName
local p = {}
function p._cleanInput(name)
local arrayLink
local arrayName
if (name or '') ~= '' then
name = name:gsub("%b{}", "")
name = name:gsub("%b<>", "")
name = name:gsub("%b[]", "")
name = mw.text.trim(name)
arrayLink, arrayName = p._split(name)
end
return arrayLink, arrayName
end
function p._split(name)
local link = ''
if (name or '') ~= '' then
local nameArray = {}
nameArray = mw.text.split(name, '|', true)
if (nameArray[2] or '') ~= '' then
link = nameArray[1]
name = nameArray[2]
end
end
return link, name
end
function p._hidden_sort(name, flag, race, hidden_sort)
if (hidden_sort or '') ~= '' then
local hs_text = hidden_sort
if hidden_sort == 'race' then
hs_text = race
elseif hidden_sort == 'name' then
hs_text = name
elseif hidden_sort == 'flag' then
hs_text = flag
end
return tostring(mw.html.create('span')
:css('display', 'none')
:wikitext(hs_text))
end
return ''
end
function p._flag(flag)
if (flag or '') ~= '' then
flag = flag:lower()
local flag_img = (require('Module:Flag'))[flag]
if (flag_img == nil) then
flag_img = mw.getCurrentFrame():expandTemplate{ title = 'Flag/' .. flag }
end
return flag_img
end
return ''
end
function p._race(race)
if (race or '') ~= '' then
local race_img = (require('Module:RaceIcon').getSmallIcon)({race})
return race_img
end
return ''
end
function p._name_link(name, link)
local text = ''
name = name or ''
if (link or '') ~= '' then
if link == 'store' or link == 'false' then
text = name
elseif link == 'true' then
text = '[[' .. name .. ']]'
else
text = '[[' .. link .. '|' .. name .. ']]'
end
else
text = '[[' .. name .. ']]'
end
return tostring (mw.html.create('span')
:css('white-space', 'pre')
:wikitext(text))
end
function p._var_defines(name, link, flag, race)
if (name or '') == '' then
return
end
link = link or ''
if link == 'store' then
mw.ext.VariablesLua.vardefine(name .. '_page', name)
elseif link ~= 'false' then
mw.ext.VariablesLua.vardefine(name .. '_page', (link ~= '') and link or name)
end
if (flag or '') ~= '' then
mw.ext.VariablesLua.vardefine(name .. '_flag', getFlag(flag, 'false'))
end
if (race or '') ~= '' then
mw.ext.VariablesLua.vardefine(name .. '_race', race)
end
end
function p._player(args)
local output = ''
local playerpage
local playername
local showRace = args['showRace'] or 'true'
local playerdq = args['dq'] or 'false'
if args['noclean'] == nill then
playerpage, playername = p._cleanInput(args[1])
if args['link'] then
if args['link'] == 'true' then
playerpage = playername
else
playerpage = args['link']
end
end
else
playerpage = args['link']
playername = args[1]
end
output = output .. p._hidden_sort(playername, args['flag'], args['race'], args['hs'])
local flag_output = p._flag(args['flag'])
output = output .. ((flag_output ~= '') and (flag_output .. ' ') or '')
if showRace == 'true' then
local race_output = p._race(args['race'])
output = output .. ((race_output ~= '') and (race_output .. ' ') or '')
end
if playerdq == 'false' then
output = output .. p._name_link(playername, playerpage)
else
output = output ..'<s>' .. p._name_link(playername, playerpage) .. '</s>'
end
if args['novar'] == nill then
p._var_defines(playername, playerpage, args['flag'], args['race'])
end
return output
end
function p._player2(args)
local output = ''
local playerpage
local playername
if args['noclean'] == nill then
playerpage, playername = p._cleanInput(args[1])
if args['link'] then
if args['link'] == 'true' then
playerpage = playername
else
playerpage = args['link']
end
end
else
playerpage = args['link']
playername = args[1]
end
output = output .. p._hidden_sort(playername, args['flag'], args['race'], args['hs'])
output = output .. p._name_link(playername, playerpage)
local race_output = p._race(args['race'])
output = output .. ((race_output ~= '') and (' ' .. race_output) or '')
local flag_output = p._flag(args['flag'])
output = output .. ((flag_output ~= '') and (' ' .. flag_output) or '')
if args['novar'] == nill then
p._var_defines(playername, playerpage, args['flag'])
end
return output
end
function p.player(frame)
return p._player(require('Module:Arguments').getArgs(frame))
end
function p.player2(frame)
return p._player2(require('Module:Arguments').getArgs(frame))
end
return p