Jump to content

Module:CricketLeagueProgression and Module:CricketLeagueProgression/sandbox: Difference between pages

(Difference between pages)
Page 1
Page 2
Content deleted Content added
Added values for The Hundred (cricket)
 
Jackmcbarn (talk | contribs)
sync
 
Line 58: Line 58:
end
end


cricmatch.title = function(m, home)
cricmatch.render = function(m, row, team, points)
local cell = row:tag('td')
local opponent = home and m.away or m.home
local venue = home and 'H' or 'A'
local home = m.home == team
local title = string.format('vs. %s (%s)', opponent.fullName, venue)
if m.result ~= 'H' and m.result ~= 'A' then
return title
end


local vs = home and m.away or m.home
local marginText = (m.result == 'H' and home or
m.result == 'A' and not home) and 'Won by ' or 'Lost by '
local venue = home and 'H' or 'A'
cell:attr('title', string.format('vs. %s (%s)', vs.fullName, venue))
if m.margin == 'F' then
marginText = marginText .. "forfeit"
elseif m.margin == 'SO' then
marginText = marginText .. "Super Over"
else
local n = tonumber(string.sub(m.margin, 1, -2))
local t = string.upper(string.sub(m.margin, -1, -1))
if t == 'R' then
marginText = marginText .. "%d run"
elseif t == 'W' then
marginText = marginText .. "%d wicket"
elseif t == 'I' then
marginText = marginText .. "an innings and %d run"
end
if marginText and n then
marginText = string.format(marginText, n)
if n > 1 then marginText = marginText .. "s" end
end
if m.dl then
marginText = marginText
.. ' (' .. m.dl .. ')'
end
end
return marginText .. ' ' .. title
end


local result = m.result
cricmatch.render = function(m, row, team, points)
local cell = row:tag('td')
local gained = 0
if m.result == 'H' then
local home = m.home == team
result = home and 'W' or 'L'
local span = cell:tag('span'):attr('title', m.title(home))
gained = home and 2 or 0

local result = m.result
elseif m.result == 'A' then
result = home and 'L' or 'W'
local gained = 0
gained = home and 0 or 2
if m.result == 'H' then
result = home and 'W' or 'L'
elseif m.result == 'N' or m.result == 'T' then
gained = home and 2 or 0
gained = 1
else
elseif m.result == 'A' then
cell
result = home and 'L' or 'W'
:css('background-color', colours.X)
gained = home and 0 or 2
:attr('class', classes.X)
elseif m.result == 'N' or m.result == 'T' then
:wikitext(string.format('[[#match%d|?]]', m.id))
gained = 1
return points
else
end
cell
:css('background-color', colours.X)
:attr('class', classes.X)
span:wikitext(string.format('[[#match%d|?]]', m.id))
return points
end


points = points + gained
points = points + gained
cell
cell:css('background-color', colours[result])
:css('background-color', colours[result])
span:wikitext(string.format('[[#match%d|%d]]', m.id, points))
:wikitext(string.format('[[#match%d|%d]]', m.id, points))
if classes[cell] then cell:attr('class', classes[cell]) end
if classes[cell] then cell:attr('class', classes[cell]) end
return points
return points
end
end


Line 184: Line 152:
local matches = {}
local matches = {}
local home, away, result, margin, dl
local home, away, result, margin, dl
local dlText = args.dls == 'Y' and 'DLS' or 'D/L'
while args[i * 5 + 5] do
while args[i * 5 + 5] do
home = teams[trim(args[i * 5 + 1])]
home = teams[trim(args[i * 5 + 1])]
Line 191: Line 158:
margin = args[i * 5 + 4]
margin = args[i * 5 + 4]
dl = args[i * 5 + 5] == "Y"
dl = args[i * 5 + 5] == "Y"
match = createMatch(m, home, away, result, margin, dl and dlText or nil)
match = createMatch(m, home, away, result, margin, dl)
if match then
if match then
table.insert(matches, match)
table.insert(matches, match)
Line 328: Line 295:
wrapper:tag('div'):css('clear', 'left')
wrapper:tag('div'):css('clear', 'left')
return tostring(wrapper)
return tostring(wrapper)
end

p.ICC = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:ICC teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
return p.create(args, teamsAssoc)
end
end


p.IPL = function(frame)
p.IPL = function(frame)
local args = getArgs(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Indian Premier League teams")
local teams = mw.loadData("Module:IndianPremierLeague/Teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier 1', abbr = 'Q1', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Eliminator', abbr = 'E', matches = {
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.IPL_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Indian Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.WPL = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Women's Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Eliminator', abbr = 'E', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P2W, loser = args.P2L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.LPL = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Lanka Premier League teams")
local teamsAssoc = {}
local teamsAssoc = {}
local i = 1
local i = 1
Line 433: Line 321:
end
end


p.LPL_SF = function(frame)
p.IPL_SF = function(frame)
local args = getArgs(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Lanka Premier League teams")
local teams = mw.loadData("Module:IndianPremierLeague/Teams")
local teamsAssoc = {}
local teamsAssoc = {}
local i = 1
local i = 1
Line 452: Line 340:
}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.ILT20 = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:International League T20 teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier 1 or Eliminator', abbr = 'Q1/E', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.ILT20_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:International League T20 teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.BBL = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Big Bash League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier or Knockout', abbr = 'Q/K', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Challenger', abbr = 'C', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.BBL_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Big Bash League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Eliminator', abbr = 'E', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Qualifier or Knockout', abbr = 'Q/K', matches = {
{ winner = args.P2W, loser = args.P2L },
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Challenger', abbr = 'C', matches = {
{ winner = args.P4W, loser = args.P4L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P5W, loser = args.P5L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.WBBL = function(frame)
local args = getArgs(frame)
local teams = {
{
code = "ADS",
fullName = "Adelaide Strikers",
shortName = "Strikers",
pageName = "Adelaide Strikers (WBBL)",
startYear = 2015,
},
{
code = "BRH",
fullName = "Brisbane Heat",
shortName = "Heat",
pageName = "Brisbane Heat (WBBL)",
startYear = 2015,
},
{
code = "HBH",
fullName = "Hobart Hurricanes",
shortName = "Hurricanes",
pageName = "Hobart Hurricanes (WBBL)",
startYear = 2015,
},
{
code = "MLR",
fullName = "Melbourne Renegades",
shortName = "Renegades",
pageName = "Melbourne Renegades (WBBL)",
startYear = 2015,
},
{
code = "MLS",
fullName = "Melbourne Stars",
shortName = "Stars",
pageName = "Melbourne Stars (WBBL)",
startYear = 2015,
},
{
code = "PRS",
fullName = "Perth Scorchers",
shortName = "Scorchers",
pageName = "Perth Scorchers (WBBL)",
startYear = 2015,
},
{
code = "SYS",
fullName = "Sydney Sixers",
shortName = "Sixers",
pageName = "Sydney Sixers (WBBL)",
startYear = 2015,
},
{
code = "SYT",
fullName = "Sydney Thunder",
shortName = "Thunder",
pageName = "Sydney Thunder (WBBL)",
startYear = 2015,
}
}
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Knockout', abbr = 'K', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Challenger', abbr = 'C', matches = {
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P3W, loser = args.P3L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.SA20 = function(frame)
local args = getArgs(frame)
local teams = {
{
code = "MICT",
fullName = "MI Cape Town",
shortName = "Cape Town",
pageName = "MI Cape Town",
startYear = 2023,
},
{
code = "DSG",
fullName = "Durban's Super Giants",
shortName = "Durban",
pageName = "Durban's Super Giants",
startYear = 2023,
},
{
code = "JSK",
fullName = "Joburg Super Kings",
shortName = "Johannesburg",
pageName = "Joburg Super Kings",
startYear = 2023,
},
{
code = "PR",
fullName = "Paarl Royals",
shortName = "Paarl",
pageName = "Paarl Royals",
startYear = 2023,
},
{
code = "PC",
fullName = "Pretoria Capitals",
shortName = "Pretoria",
pageName = "Pretoria Capitals",
startYear = 2023,
},
{
code = "SEC",
fullName = "Sunrisers Eastern Cape",
shortName = "Eastern Cape",
pageName = "Sunrisers Eastern Cape",
startYear = 2023,
}
}
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier 1 or Eliminator', abbr = 'Q1/E', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.PSL = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:PakistanSuperLeagueTeams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Eliminator 1 or Qualifier', abbr = 'E1/Q', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Eliminator 2', abbr = 'E2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.PSL_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:PakistanSuperLeagueTeams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.BPL = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Bangladesh Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier 1 or Eliminator', abbr = 'Q1/E', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.BPL_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Bangladesh Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.CPL = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Caribbean Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Eliminator', abbr = 'E', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Qualifier 1', abbr = 'Q1', matches = {
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.CPL_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Caribbean Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.MLC = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Major League Cricket teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier or Eliminator', abbr = 'Q/E', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Challenger', abbr = 'C', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.MLC_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Major League Cricket teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.NPL = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Nepal Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Eliminator', abbr = 'E', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Qualifier 1', abbr = 'Q1', matches = {
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.NPL_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Nepal Premier League teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end


p.GT20 = function(frame)
local args = getArgs(frame)
local teams = {
{
code = "BW",
fullName = "Brampton Wolves",
shortName = "Brampton",
pageName = "Global T20 Canada#Teams",
startYear = 2019,
},
{
code = "BTM",
fullName = "Bangla Tigers Mississauga",
shortName = "Bangla",
pageName = "Global T20 Canada#Teams",
startYear = 2024,
},
{
code = "ER",
fullName = "Edmonton Royals",
shortName = "Edmonton",
pageName = "Global T20 Canada#Teams",
startYear = 2018,
endYear = 2019,
},
{
code = "MP",
fullName = "Mississauga Panthers",
shortName = "Mississauga",
pageName = "Global T20 Canada#Teams",
startYear = 2023,
endYear = 2023,
},
{
code = "MT",
fullName = "Montreal Tigers",
shortName = "Montreal",
pageName = "Global T20 Canada#Teams",
startYear = 2018,
},
{
code = "SJ",
fullName = "Surrey Jaguars",
shortName = "Surrey",
pageName = "Global T20 Canada#Teams",
startYear = 2023,
},
{
code = "TN",
fullName = "Toronto Nationals",
shortName = "Toronto",
pageName = "Global T20 Canada#Teams",
startYear = 2018,
},
{
code = "VK",
fullName = "Vancouver Knights",
shortName = "Vancouver",
pageName = "Global T20 Canada#Teams",
startYear = 2018,
},
{
code = "WIB",
fullName = "West Indies B",
shortName = "West Indies B",
pageName = "West Indies B cricket team",
startYear = 2018,
endYear = 2018,
},
{
code = "WH",
fullName = "Winnipeg Hawks",
shortName = "Winnipeg",
pageName = "Global T20 Canada#Teams",
startYear = 2018,
endYear = 2019,
}
}
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier 1 or Eliminator', abbr = 'Q1/E', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)

end

p.ADT10 = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Abu Dhabi T10 teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Qualifier 1 or Eliminator', abbr = 'Q1/E', matches = {
{ winner = args.P1W, loser = args.P1L },
{ winner = args.P2W, loser = args.P2L }
}},
{ name = 'Qualifier 2', abbr = 'Q2', matches = {
{ winner = args.P3W, loser = args.P3L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P4W, loser = args.P4L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.ADT10_SF = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:Abu Dhabi T10 teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local knockout = {
{ name = 'Semi-finals', abbr = 'SF', matches = {
{ winner = args.SF1W, loser = args.SF1L },
{ winner = args.SF2W, loser = args.SF2L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.FW, loser = args.FL }
}}
}
return p.create(args, teamsAssoc, "Knockout", knockout)
end

p.M100 = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:The Hundred teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Eliminator', abbr = 'E', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P2W, loser = args.P2L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end

p.W100 = function(frame)
local args = getArgs(frame)
local teams = mw.loadData("Module:The Hundred teams")
local teamsAssoc = {}
local i = 1
while teams[i] do
teamsAssoc[teams[i].code] = teams[i]
i = i + 1
end
local playoffs = {
{ name = 'Eliminator', abbr = 'E', matches = {
{ winner = args.P1W, loser = args.P1L }
}},
{ name = 'Final', abbr = 'F', matches = {
{ winner = args.P2W, loser = args.P2L }
}}
}
return p.create(args, teamsAssoc, "Playoffs", playoffs)
end
end