Module:Sports results/blank

-- This module generates a blank invocation of the sports results module

-- using the values of team1, team2, ...

local p = {}

local function isnotempty(s)

return s and s:match( '^%s*(.-)%s*$' ) ~= ''

end

function p.main(frame)

local args = (frame.args['team1'] ~= nil or frame.args['team_order'] ~= nil) and frame.args or frame:getParent().args

local processed = {}

-- Alternative syntax for team list

if args['team_order'] and args['team_order'] ~= '' then

local tlist = mw.text.split(args['team_order'], '%s*[;,]%s*')

for k, tname in ipairs(tlist) do

if tname ~= '' then

args['team' .. k] = tname

end

end

end

-- Count the number of teams

local numteams = 0

while isnotempty(args['team' .. (numteams + 1)]) do

numteams = numteams + 1

end

local res = '{{#invoke:sports results|main\n'

if args['template_name'] then

res = res .. '| template_name = '

.. (args['template_name'] or '') .. '\n'

processed['template_name'] = 1

end

res = res .. '| source = '

.. (args['source'] or '') .. '\n'

processed['source'] = 1

res = res .. '| update = '

.. (args['update'] or '') .. '\n'

processed['update'] = 1

if args['start_date'] then

res = res .. '| start_date = ' .. args['start_date'] .. '\n'

processed['start_date'] = 1

end

if args['match_col_width'] then

res = res .. '| match_col_width = ' .. args['match_col_width'] .. '\n'

processed['match_col_width'] = 1

end

if args['matches_style'] then

res = res .. '| matches_style = ' .. args['matches_style'] .. '\n'

processed['matches_style'] = 1

end

if args['a_note'] then

res = res .. '| a_note = ' .. args['a_note'] .. '\n'

processed['a_note'] = 1

end

if args['showteam'] then

res = res .. '| showteam = ' ..

(args['showteam'] or '') .. '\n'

processed['showteam'] = 1

end

if args['team_order'] and args['team_order'] ~= '' then

res = res .. '| team_order = ' .. args['team_order']

processed['team_order'] = 1

for i=1,numteams do

local ab = args['team' .. i]

processed['team' .. i] = 1

end

else

for i=1,numteams do

local ab = args['team' .. i]

processed['team' .. i] = 1

res = res .. '| team' .. i .. '= ' .. ab .. ' '

end

end

res = res .. '\n\n'

for i=1,numteams do

local ab = args['team' .. i]

res = res .. '| name_'..ab ..' = '.. (args['name_'..ab] or '') .. '\n'

processed['name_'..ab] = 1

if (args['short_'..ab]) then

res = res .. '| short_'..ab ..' = '.. (args['short_'..ab] or '') .. '\n'

processed['short_'..ab] = 1

end

end

res = res .. '\n'

for i=1,numteams do

local abi = args['team' .. i]

for j=1,numteams do

local abj = args['team' .. j]

if i ~= j then

local mij = 'match_' .. abi .. '_' .. abj

res = res .. '| ' .. mij .. ' = ' .. (args[mij] or '') .. '\n'

processed[mij] = 1

end

end

res = res .. '\n'

end

local comment = '\n'

for k, v in pairs( args ) do

if v ~=nil and processed[k] == nil then

res = res .. comment .. '| ' .. k .. ' = ' .. v .. '\n'

comment = ''

end

end

res = res .. '}}'

return res

end

return p