Module:Sandbox/TheCOSMICbistro
Appearance
local p = {}
function p.standings(frame)
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame, {parentFirst = true})
--[[ to do list
0. add championships
0. clean up functions
1. documentation
2. simplify how drivers, teams, and manufacturers are added (USE SEPARATORS!)
3. allow classify to not classify drivers
4. add year functionality
5. remove dependence on championship
6. standardize results using upper and lower
7. changing column name functionality
8. streamline subraces
9. make cancellation a race attribute and not a driver result attribute
10. build collage to create points/color/display systems
]]
-- colors
local colors = {gold='#FFFFBF', silver='#DFDFDF', bronze='#FFDF9F', green='#DFFFDF', light_blue='#CFEAFF', dark_blue='#CFCFFF', purple='#EFCFFF', red='#FFCFCF', brown='#DFC484', black='#000000; color: white', white='#FFFFFF', blank='#; color: white', empty='#'}
-- example points system
-- {['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9'], ['10'], ['11'], ['12'], ['13'], ['14'], ['15'], ['16'], ['17'], ['18'], ['19'], ['20'], ['21'], ['22'], ['23'], ['24'], ['25'], ['26'], ['27'], ['28'], ['29'], ['30'], ['31'], ['32'], ['33'], ['34'], ['35'], ['36'], ['37'], ['38'], ['39'], ['40'], ['41'], ['42'], ['43'], ['44'], ['45'], ['46'], ['47'], ['48'], ['49'], ['50'], ['51'], ['52'], ['53'], ['54'], ['55'], ['56'], ['57'], ['58'], ['59'], ['60'], ['61'], ['62'], ['63'], ['64'], ['65'], ['66'], ['67'], ['68'], ['69'], ['70'], ['71'], ['72'], ['73'], ['74'], ['75'], ['76'], ['77'], ['78'], ['79'], ['80'], ['81'], ['82'], ['83'], ['84'], ['85'], ['86'], ['87'], ['88'], ['89'], ['90'], ['91'], ['92'], ['93'], ['94'], ['95'], ['96'], ['97'], ['98'], ['99'], ['100']}
local ex_main_points_system = {['1']=100, ['2']=90, ['3']=80, ['4']=70, ['5']=60, ['6']=50, ['7']=40, ['8']=30, ['9']=20, ['10']=10, ['11']=0, ['12']=0, ['13']=0, ['14']=0, ['15']=0, ['16']=0, ['17']=0, ['18']=0, ['19']=0, ['20']=0, ['21']=0, ['22']=0, ['23']=0, ['24']=0, ['25']=0, NC=0, Ret=0, DNQ=0, EX=0, DSQ=0, DNS=0, WD=0, DNA=0, C=0, [' ']=0}
local ex_side_points_system = {['1']=20, ['2']=18, ['3']=16, ['4']=14, ['5']=12, ['6']=10, ['7']=8, ['8']=6, ['9']=4, ['10']=2, P=10, F=4, L=2, M=6}
local ex_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['dark_blue'], ['12']=colors['dark_blue'], ['13']=colors['dark_blue'], ['14']=colors['dark_blue'], ['15']=colors['dark_blue'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], ['25']=colors['dark_blue'], NC=colors['dark_blue'], Ret=colors['purple'], DNQ=colors['red'], EX=colors['black'], DSQ=colors['black'], DNS=colors['white'], WD=colors['white'], DNA=colors['white'], C=colors['white'], [' ']=colors['empty']}
local ex_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', NC='NC', Ret='Ret', DNQ='DNQ', EX='EX', DSQ='DSQ', DNS='DNS', WD='WD', DNA='DNA', C='C', [' ']=''}
local ex_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', 'NC', 'Ret', 'DNQ', 'EX', 'DSQ', 'DNS', 'WD', 'DNA', 'C', ' '}
-- functions
---- padding function
local function pad(num) return string.format('%06d', tonumber(num)) end
---- ascending alphanumeric and descending alphanumeric sorting functions
local function alphanum_asc(x, y)
return x:gsub('(%d+)', pad) < y:gsub('(%d+)', pad)
end
local function alphanum_desc(x, y)
return x:gsub('(%d+)', pad) > y:gsub('(%d+)', pad)
end
---- identical function
local function identical(table1, table2)
local function identical_helper(table1, table2, truth)
for i=1, math.min(#table1, #table2) do
if type(table1[i]) == 'table' and type(table2[i]) == 'table' then
identical_helper(table1[i], table2[i], truth)
elseif table1[i] ~= table2[i] then
truth = truth + 1
end
end
return truth == 0
end
return identical_helper(table1, table2, 0)
end
---- includes function
local function includes(array, value)
for i, v in ipairs(array) do
if type(v) == 'table' and type(value) == 'table' then
return identical(v, value)
elseif type(v) == 'table' then
return includes(v, value)
elseif v == value then
return true
end
end
return false
end
---- index function
local function index(array, value)
for i, v in ipairs(array) do
if type(v) == 'table' and type(value) == 'table' and identical(v, value) then
return i
elseif type(v) == 'table' and includes(v, value) then
return i
elseif v == value then
return i
end
end
return nil
end
---- systems creating function
---- points calculating function
local function calculate(championship, rlengths, results, pps, sps)
local points = {}
for id, result in ipairs(results) do
local pts = 0
for i, r in ipairs(result) do
local sub = {}
if type(r) == 'table' then
for s=2, #r do
table.insert(sub, r[s])
end
r = r[1]
end
if r:find('=') then
local _, eqe = r:find('=')
pts = pts + pps[r:sub(eqe+1)]
elseif r:match('^R%d+$') or r:match('^D%d+$') then
pts = pts + pps[r:sub(2)]
elseif championship == 'WEC' or championship == 'GTWCE' then
pts = pts + pps[r][rlengths[i]]
elseif r:match('^N%d+$') then
else
pts = pts + pps[r]
end
for _, s in ipairs(sub) do
pts = pts + sps[s]
end
end
points[id] = pts
end
return points
end
---- points sorting function
local function classify(championship, results, points, scheme)
local format, finishes, empty = {}, {}, {}
for id, pts in ipairs(points) do
format[id] = {id, pts}
end
for id, result in ipairs(results) do
finishes[id] = {}
table.insert(empty, ' ')
for _, r in ipairs(result) do
local i
if type(r) == 'table' then
r = r[1]
end
if r:find('=') then
local _, eqe = r:find('=')
r = r:sub(eqe+1)
end
if r:match('^R%d+') then
i = index(scheme, 'Ret')
elseif r:match('^N%d+') then
i = index(scheme, 'NC')
elseif r:match('^D%d+') then
i = index(scheme, 'DSQ')
else
i = index(scheme, r)
end
if finishes[id][i] then
finishes[id][i] = finishes[id][i] + 1
else
finishes[id][i] = 1
end
end
for c=1, #scheme do
if not finishes[id][c] then
finishes[id][c] = 0
end
end
end
local swapped
local b = #format
repeat
swapped = false
for i=1, b-1 do
local separate = false
if format[i][2] < format[i+1][2] then
format[i], format[i+1] = format[i+1], format[i]
swapped, separate = true, true
elseif format[i][2] > format[i+1][2] then
separate = true
end
if not separate then
for f=1, #scheme do
if finishes[format[i][1]][f] < finishes[format[i+1][1]][f] then
format[i], format[i+1] = format[i+1], format[i]
swapped = true
break
elseif finishes[format[i][1]][f] > finishes[format[i+1][1]][f] then
break
end
end
end
end
b = b - 1
until not swapped
local step = 1
if #format < 2 then
return {}
end
repeat
if format[step][2] == format[step+1][2] then
if identical(results[format[step][1]], empty) and identical(results[format[step+1][1]], empty) then
format[step][3], format[step+1][3] = 0, 0
elseif identical(results[format[step][1]], results[format[step+1][1]]) then
if format[step][3] then
format[step+1][3] = format[step][3]
else
format[step][3], format[step+1][3] = 1, 1
end
elseif identical(finishes[format[step][1]], finishes[format[step+1][1]]) then
if format[step][3] then
format[step+1][3] = format[step][3] + 1
else
format[step][3], format[step+1][3] = 1, 2
end
end
end
step = step + 1
until step >= #format
local comp = 1
local positions, pos = {}, 1
repeat
if format[comp][2] == format[comp+1][2] then
if not positions[pos] then
positions[pos] = {format[comp][1]}
end
if format[comp][3] == 0 and format[comp+1][3] == 0 then
positions[pos][#positions[pos]], positions[pos][#positions[pos]+1] = format[comp][1], format[comp+1][1]
elseif format[comp][3] and format[comp+1][3] and format[comp][3] == format[comp+1][3] then
if type(positions[pos][format[comp][3]]) ~= 'table' then
positions[pos][format[comp][3]] = {format[comp][1], format[comp+1][1]}
else
table.insert(positions[pos][format[comp][3]], format[comp+1][1])
end
elseif format[comp][3] and format[comp+1][3] then
positions[pos][format[comp+1][3]] = {format[comp+1][1]}
else
positions[pos], positions[pos+1] = {format[comp][1]}, {format[comp+1][1]}
pos = pos + 1
end
else
if not positions[pos] then
positions[pos] = {format[comp][1]}
end
positions[pos+1] = {format[comp+1][1]}
pos = pos + 1
end
comp = comp + 1
until comp >= #format
return positions
end
---- championship clinched function
local function clinched(championship, id, drivers, results, points, max, min)
local specific = {}
for d, _ in pairs(drivers) do
table.insert(specific, {d, points[d]})
end
table.sort(specific, function(x, y) return x[2] > y[2] end)
if #specific == 0 then
return false
end
local delta = max - min
local remaining, left = 0
for i=1, #specific do
for r=1, #results[specific[i][1]] do
if results[specific[i][1]][r] ~= '' and remaining < r then
remaining = r
end
end
left = #results[specific[i][1]] - remaining
end
if specific[1][1] == id[1] then
local against
if #specific == 1 then
against = 0
else
against = points[specific[2][1]]
end
if points[id[1]] > against + (delta*left) then
return true
end
end
return false
end
---- wikitable row function
local function combine(championship, id, drivers, rookies, teams, stints, manufacturers, result, point, auxpoint, position, auxposition, clinch, pps, sps, cs, ds)
local row_def, row_results, row_fin = '', {}, ''
local cell = '| style="background:'
local num_teams, num_manufacturers = 0, 0
if teams[id[1]] then
num_teams = #teams[id[1]]
end
if manufacturers[id[1]] then
num_manufacturers = #manufacturers[id[1]]
end
local R = ''
if rookies[id[1]] then
if championship == 'INDYCAR' then
if clinch then
R = ' <span style="border: 1px solid silver; padding: 1px 4px; color: black; background-color: yellow;">' .. "'''RY'''" .. '</span>'
else
R = ' <span style="border: 1px solid silver; padding: 1px 3px; color: black; background-color: orange;">' .. "'''R'''" .. '</span>'
end
elseif championship == 'MOTOGP' then
R = ' style="background:#ADD8E6;"'
end
end
if num_teams > 1 then
row_def = row_def .. '! rowspan="' .. num_teams .. '" | ' .. position .. '\n| style="position: sticky; left: 0; background-clip: padding-box; color: inherit;" align="left" rowspan="' .. num_teams .. '"'
else
row_def = row_def .. '! ' .. position .. '\n| style="position: sticky; left: 0; background-clip: padding-box; color: inherit;" align="left"'
end
if championship == 'MOTOGP' then
row_def = row_def .. R
end
row_def = row_def .. ' | '
for _, d in ipairs(id) do
row_def = row_def .. drivers[d] .. '<br>'
end
id = id[1]
row_def = row_def:sub(1, #row_def-4)
if championship == 'INDYCAR' then
row_def = row_def .. R
end
row_def = row_def .. '\n'
local first, last, stint = 1, #result, 1
if num_teams > 1 then
first, last = tonumber(stints[id][1][stint]), tonumber(stints[id][1][stint+1])
end
local t = 1
repeat
local row_races = ''
if num_teams > 0 then
if championship == 'MOTOGP' then
row_races = row_races .. '| ' .. teams[id][t] .. '\n'
else
row_races = row_races .. '| align="left" | ' .. teams[id][t] .. '\n'
end
end
if num_teams > 1 then
first = tonumber(stints[id][t][stint]) or first
last = tonumber(stints[id][t][stint+1]) or last
end
if num_manufacturers > 0 then
if championship == 'MOTOGP' then
row_races = row_races .. '| ' .. manufacturers[id][t] .. '\n'
else
row_races = row_races .. '| align="left" | ' .. manufacturers[id][t] .. '\n'
end
end
for i, r in ipairs(result) do
local bg
local face, sup = {}, {}
if type(r) == 'table' then
for s=2, #r do
if ds[r[s]]:find("'") then
table.insert(face, r[s])
else
table.insert(sup, r[s])
end
end
r = r[1]
end
if r:match('%w+=%w+') then
local eqs, eqe = r:find('=')
bg = cs[r:sub(eqe+1)]
r = ds[r:sub(1, eqs-1)]
elseif r:match('^R%d+$') then
bg = cs['Ret']
r = ds[r:sub(2)]
elseif r:match('^N%d+') then
bg = cs['NC']
r = ds[r:sub(2)] .. '†'
elseif r:match('^D%d+') then
bg = cs['DSQ']
r = ds[r:sub(2)]
elseif championship == 'WRC' then
bg = cs[r] .. '; padding: 1em'
r = ds[r]
else
bg = cs[r]
r = ds[r]
end
for _, tf in ipairs(face) do
r = ds[tf] .. r .. ds[tf]
end
if i < first or i > last then
bg, r = colors['empty'], ' '
end
row_races = row_races .. cell .. bg .. ';" | '
if championship == 'WRC' and r ~= '' then
row_races = row_races .. '<div class="sfrac nowrap;">'
end
row_races = row_races .. r
if championship == 'WRC' and r ~= '' then
row_races = row_races .. '</div><div style="line-height: 1em; font-size: 85%; padding: 0 0;"><small>' .. pps[r]
for _, s in ipairs(sup) do
row_races = row_races .. '+' .. sps[s]
end
row_races = row_races .. '</small></div>'
sup = {}
elseif championship == 'WRC' or championship == 'IMSA' then
sup = {}
end
for _, s in ipairs(sup) do
row_races = row_races .. "<sup>'''" .. ds[s] .. "'''</sup>"
end
row_races = row_races .. '\n'
if i == last then
stint = stint + 2
if num_teams > 1 then
first = tonumber(stints[id][t][stint]) or first
last = tonumber(stints[id][t][stint+1]) or last
end
end
end
table.insert(row_results, row_races)
stint = 1
t = t + 1
until t > num_teams
if num_teams > 1 then
row_fin = row_fin .. '! style="position: sticky; right: 0; background-clip: padding-box; color: inherit;" rowspan="' .. num_teams .. '" | ' .. point .. '\n'
else
row_fin = row_fin .. '! style="position: sticky; right: 0; background-clip: padding-box; color: inherit;" | ' .. point .. '\n'
end
if auxposition then
if num_teams > 1 then
row_fin = row_fin .. '! rowspan="' .. num_teams .. '" '
else
row_fin = row_fin .. '! '
end
if auxposition <= 3 then
row_fin = row_fin .. 'style="background:' .. cs[tostring(auxposition)]
end
end
if auxpoint then
if num_teams > 1 or auxposition <= 3 then
row_fin = row_fin .. ' | '
else
row_fin = row_fin .. '! '
end
row_fin = row_fin .. auxpoint .. '\n'
end
row_fin = row_fin .. '|-\n'
local row = row_def .. row_results[1] .. row_fin
for t=2, #row_results do
row = row .. row_results[t] .. '|-\n'
end
return row
end
---- wikitable creating function
local function convey(championship, races, subraces, drivers, rookies, teams, stints, manufacturers, results, points, auxillary_points, positions, auxillary_positions, pps, sps, cs, ds, sources)
local pos_column, comp_column, team_column, man_column, points_column, aux_column = args['position'] or 'Pos', args['competitor'] or 'Driver', args['team'] or 'Team', args['manufacturer'] or 'Manufacturer', args['point'] or 'Points', args['auxchampionship'] or ''
local def = '<div style="overflow-x: auto;">\n{| class="wikitable" style="font-size: 85%; white-space: nowrap; text-align: center; border: 1px solid #A2A9B1;"\n|-\n'
local header = '! ' .. pos_column .. '\n! style="border: 1px solid #A2A9B1; position: sticky; left: 0; background-clip: padding-box; color: inherit;" | ' .. comp_column .. '\n'
local data = ''
local rows = {}
local rowbreak = '|-\n'
local fin = '|}\n</div>'
local num_sraces = 0
local num_columns = 0
for _, s in pairs(subraces) do
num_sraces = num_sraces + #s
end
if num_sraces > 0 then
header = '! rowspan="2" | ' .. pos_column .. '\n! style="border: 1px solid #A2A9B1; position: sticky; left: 0; background-clip: padding-box; color: inherit;" rowspan="2" | ' .. comp_column .. '\n'
end
if #teams > 0 then
if num_sraces > 0 then
header = header .. '! rowspan="2" | ' .. team_column .. '\n'
else
header = header .. '! ' .. team_column .. '\n'
end
end
if #manufacturers > 0 then
header = header .. '! ' .. man_column .. '\n'
end
for r=1, #races do
if subraces[r] then
header = header .. '! colspan="' .. #subraces[r] .. '" | ' .. races[r] .. '\n'
elseif num_sraces > 0 then
header = header .. '! rowspan="2" | ' .. races[r] .. '\n'
else
header = header .. '! ' .. races[r] .. '\n'
end
end
if num_sraces > 0 then
header = header .. '! style="border: 1px solid #A2A9B1; position: sticky; right: 0; background-clip: padding-box; color: inherit;" rowspan="2" | ' .. points_column .. '\n'
else
header = header .. '! style="border: 1px solid #A2A9B1; position: sticky; right: 0; background-clip: padding-box; color: inherit;" | ' .. points_column .. '\n'
end
if #auxillary_positions > 0 then
if num_sraces > 0 then
header = header .. '! rowspan="2" | ' .. aux_column .. '\n'
else
header = header .. '! ' .. aux_column .. '\n'
end
end
header = header .. rowbreak
for r=1, #races do
if subraces[r] then
for _, sr in ipairs(subraces[r]) do
header = header .. '! ' .. sr .. '\n'
end
end
end
if num_sraces > 0 then
header = header .. rowbreak
end
for pos, ids in ipairs(positions) do
local row, extract
for _, i in ipairs(ids) do
local id
if type(i) == 'table' then
extract = i[1]
id = i
else
extract = i
id = {i}
end
if championship == 'F1' or championship == 'WRC' then
row = combine(championship, id, drivers, {}, {}, {}, {}, results[extract], points[extract], nil, pos, nil, nil, pps, sps, cs, ds)
elseif championship == 'INDYCAR' then
local clinch = clinched(championship, id, rookies, results, points, 54, 0)
row = combine(championship, id, drivers, rookies, {}, {}, {}, results[extract], points[extract], nil, pos, nil, clinch, pps, sps, cs, ds)
elseif championship == 'WEC' or championship == 'GTWCE' then
row = combine(championship, id, drivers, {}, teams, stints, {}, results[extract], points[extract], nil, pos, nil, nil, pps, sps, cs, ds)
elseif championship == 'IMSA' then
row = combine(championship, id, drivers, {}, {}, {}, {}, results[extract], points[extract], auxillary_points[extract], pos, index(auxillary_positions, extract), nil, pps, sps, cs, ds)
elseif championship == 'MOTOGP' then
row = combine(championship, id, drivers, rookies, teams, stints, manufacturers, results[extract], points[extract], nil, pos, nil, nil, pps, sps, cs, ds)
elseif championship == 'FE' then
row = combine(championship, id, drivers, {}, {}, {}, {}, results[extract], points[extract], nil, pos, nil, nil, pps, sps, cs, ds)
else
row = combine(nil, id, drivers, rookies, teams, stints, manufacturers, results[extract], points[extract], nil, pos, nil, nil, pps, sps, cs, ds)
end
table.insert(rows, row)
end
end
for _, row in ipairs(rows) do
data = data .. row
end
for _ in header:gmatch('!') do
num_columns = num_columns + 1
end
if sources then
fin = '! colspan="' .. num_columns .. '" | Sources:' .. sources .. '\n' .. rowbreak .. fin
end
local wikitable = ''
wikitable = wikitable .. def .. header .. data .. header .. fin
return wikitable
end
-- sorting keys
local keys = {}
for key, _ in pairs(args) do
table.insert(keys, key)
end
table.sort(keys, alphanum_asc)
-- variables
local championship = string.upper(args['championship'])
local separator = args['separator'] or ','
local auxseparator = args['auxseparator'] or '/'
local teamseparator = args['teamseparator'] or ':'
local sources = args['sources']
local races, rlengths = {}, {}
local subraces = {}
local num_races, curr_race = 0, 1
local drivers = {}
local rookies = {}
local teams = {}
local stints = {}
local manufacturers = {}
local id = 0
local results, auxresults = {}, {}
-- THE FOR LOOP
for _, key in ipairs(keys) do
if key:match('^d%d+$') then
id = tonumber(key:sub(2))
drivers[id] = args[key]
teams[id] = {''}
stints[id] = {}
manufacturers[id] = {''}
results[id] = {}
auxresults[id] = {}
curr_race = 1
end
if key:match('^d' .. id .. 'r%d+$') then
if not key:match('^d' .. id .. 'r' .. curr_race) then
curr_race = tonumber(key:sub(3+#tostring(id)))
end
local result, auxresult = args[key]
if result:find(auxseparator) then
local stind, endig = result:find(auxseparator)
auxresult = result:sub(endig+1)
result = result:sub(1, stind-1)
end
if result:find(separator) then
results[id][curr_race] = {}
for r in result:gmatch('%P+') do
table.insert(results[id][curr_race], r)
end
else
results[id][curr_race] = result
end
if auxresult then
for a in auxresult:gmatch('%P+') do
table.insert(auxresults[id], a)
end
end
curr_race = curr_race + 1
end
if key:match('^d' .. id .. 'R$') then
rookies[id] = id
end
if key:match('^d' .. id .. 'm%d+$') then
local mid = tonumber(key:sub(3+#tostring(id)))
manufacturers[id][mid] = args[key]
end
if key:match('^d' .. id .. 't%d+$') then
local tid = tonumber(key:sub(3+#tostring(id)))
local team, stint = args[key]
if team:find(teamseparator) then
local scs, sce = team:find(teamseparator)
stint = team:sub(sce+1)
team = team:sub(1, scs-1)
end
teams[id][tid] = team
if stint then
stints[id][tid] = {}
for r in stint:gmatch('%d+') do
table.insert(stints[id][tid], r)
end
end
end
if key:match('^r%d+$') then
num_races = num_races + 1
races[num_races] = args[key]
end
if key:match('^r' .. num_races .. 's%d+$') then
if not subraces[num_races] then
subraces[num_races] = {}
end
table.insert(subraces[num_races], args[key])
end
if key:match('^rl%d+$') then
local rlid = tonumber(key:sub(3))
rlengths[rlid] = args[key]
end
end
-- unentered races
for d=1, #drivers do
for u=1, num_races do
if not results[d][u] then
results[d][u] = ' '
end
end
end
-- championships
---- F1
local function F1(championship, races, drivers, results, sources)
-- points systems
---- current points system
local F1_points_system = {['1']=25, ['2']=18, ['3']=15, ['4']=12, ['5']=10, ['6']=8, ['7']=6, ['8']=4, ['9']=2, ['10']=1, ['11']=0, ['12']=0, ['13']=0, ['14']=0, ['15']=0, ['16']=0, ['17']=0, ['18']=0, ['19']=0, ['20']=0, ['21']=0, ['22']=0, ['23']=0, ['24']=0, ['25']=0, ['26']=0, NC=0, Ret=0, DNQ=0, DSQ=0, DNS=0, C=0, DNP=0, EX=0, DNA=0, WD=0, [' ']=0}
local F1_sprint_points_system = {['1']=8, ['2']=7, ['3']=6, ['4']=5, ['5']=4, ['6']=3, ['7']=2, ['8']=1, P=0, F=0}
local F1_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['dark_blue'], ['12']=colors['dark_blue'], ['13']=colors['dark_blue'], ['14']=colors['dark_blue'], ['15']=colors['dark_blue'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], ['25']=colors['dark_blue'], ['26']=colors['dark_blue'], NC=colors['dark_blue'], Ret=colors['purple'], DNQ=colors['red'], DSQ=colors['black'], DNS=colors['white'], C=colors['white'], DNP=colors['blank'], EX=colors['blank'], DNA=colors['blank'], WD=colors['blank'], [' ']=colors['empty']}
local F1_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', ['26']='26', NC='NC', Ret='Ret', DNQ='DNQ', DSQ='DSQ', DNS='DNS', C='C', DNP='DNP', EX='EX', DNA='DNA', WD='WD', [' ']='', P='P', F='F'}
local F1_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', 'NC', 'Ret', 'DNQ', 'DSQ', 'DNS', 'C', 'DNP', 'EX', 'DNA', 'WD', ' '}
-- points
local points = calculate(championship, {}, results, F1_points_system, F1_sprint_points_system)
-- positions
local positions = classify(championship, results, points, F1_classification)
-- table
local wikitable = convey(championship, races, {}, drivers, {}, {}, {}, {}, results, points, {}, positions, {}, F1_points_system, F1_sprint_points_system, F1_color_system, F1_display_system, sources)
return wikitable
end
---- INDYCAR
local function INDYCAR(championship, races, drivers, rookies, results, sources)
-- points system
---- current points system
local IC_points_system = {['1']=50, ['2']=40, ['3']=35, ['4']=32, ['5']=30, ['6']=28, ['7']=26, ['8']=24, ['9']=22, ['10']=20, ['11']=19, ['12']=18, ['13']=17, ['14']=16, ['15']=15, ['16']=14, ['17']=13, ['18']=12, ['19']=11, ['20']=10, ['21']=9, ['22']=8, ['23']=7, ['24']=6, ['25']=5, ['26']=5, ['27']=5, ['28']=5, ['29']=5, ['30']=5, ['31']=5, ['32']=5, ['33']=5, Ret=0, DNQ=0, Wth=0, DSQ=0, DNS=0, C=0, [' ']=0}
local IC_inline_points_system = {['1']=12, ['2']=11, ['3']=10, ['4']=9, ['5']=8, ['6']=7, ['7']=6, ['8']=5, ['9']=4, ['10']=3, ['11']=2, ['12']=1, P=1, F=0, L=1, M=2, C=0}
local IC_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['light_blue'], ['7']=colors['light_blue'], ['8']=colors['light_blue'], ['9']=colors['light_blue'], ['10']=colors['light_blue'], ['11']=colors['dark_blue'], ['12']=colors['dark_blue'], ['13']=colors['dark_blue'], ['14']=colors['dark_blue'], ['15']=colors['dark_blue'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], ['25']=colors['dark_blue'], ['26']=colors['dark_blue'], ['27']=colors['dark_blue'], ['28']=colors['dark_blue'], ['29']=colors['dark_blue'], ['30']=colors['dark_blue'], ['31']=colors['dark_blue'], ['32']=colors['dark_blue'], ['33']=colors['dark_blue'], Ret=colors['purple'], DNQ=colors['red'], Wth=colors['brown'], DSQ=colors['black'], DNS=colors['white'], C=colors['white'], [' ']=colors['empty']}
local IC_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', ['26']='26', ['27']='27', ['28']='28', ['29']='29', ['30']='30', ['31']='31', ['32']='32', ['33']='33', Ret='Ret', DNQ='DNQ', Wth='Wth', DSQ='DSQ', DNS='DNS', C='C', [' ']='', P="'''", F="''", L='L', M='*', c='c'}
local IC_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', 'Ret', 'DNQ', 'Wth', 'DSQ', 'DNS', 'C', ' '}
-- points
local points = calculate(championship, {}, results, IC_points_system, IC_inline_points_system)
-- positions
local positions = classify(championship, results, points, IC_classification)
-- table
local wikitable = convey(championship, races, {}, drivers, rookies, {}, {}, {}, results, points, {}, positions, {}, IC_points_system, IC_inline_points_system, IC_color_system, IC_display_system, sources)
return wikitable
end
---- WRC
local function WRC(championship, races, drivers, results, sources)
-- points system
---- current points system
local WRC_points_system = {['1']=25, ['2']=17, ['3']=15, ['4']=12, ['5']=10, ['6']=8, ['7']=6, ['8']=4, ['9']=2, ['10']=1, ['11']=0, ['12']=0, ['13']=0, ['14']=0, ['15']=0, ['16']=0, ['17']=0, ['18']=0, ['19']=0, ['20']=0, ['21']=0, ['22']=0, ['23']=0, ['24']=0, ['25']=0, ['26']=0, ['27']=0, ['28']=0, ['29']=0, ['30']=0, ['31']=0, ['32']=0, ['33']=0, ['34']=0, ['35']=0, ['36']=0, ['37']=0, ['38']=0, ['39']=0, ['40']=0, ['41']=0, ['42']=0, ['43']=0, ['44']=0, ['45']=0, ['46']=0, ['47']=0, ['48']=0, ['49']=0, ['50']=0, ['51']=0, ['52']=0, ['53']=0, ['54']=0, ['55']=0, ['56']=0, ['57']=0, ['58']=0, ['59']=0, ['60']=0, ['61']=0, ['62']=0, ['63']=0, ['64']=0, ['65']=0, ['66']=0, ['67']=0, ['68']=0, ['69']=0, ['70']=0, ['71']=0, ['72']=0, ['73']=0, ['74']=0, ['75']=0, ['76']=0, ['77']=0, ['78']=0, ['79']=0, ['80']=0, ['81']=0, ['82']=0, ['83']=0, ['84']=0, ['85']=0, ['86']=0, ['87']=0, ['88']=0, ['89']=0, ['90']=0, ['91']=0, ['92']=0, ['93']=0, ['94']=0, ['95']=0, ['96']=0, ['97']=0, ['98']=0, ['99']=0, ['100']=0, NC=0, Ret=0, EX=0, DSQ=0, DNS=0, C=0, WD=0, [' ']=0}
local WRC_sunday_points_system = {['1']=5, ['2']=4, ['3']=3, ['4']=2, ['5']=1, ['6']=0, ['7']=0, ['8']=0, ['9']=0, ['10']=0, ['11']=0, ['12']=0, ['13']=0, ['14']=0, ['15']=0, ['16']=0, ['17']=0, ['18']=0, ['19']=0, ['20']=0, ['21']=0, ['22']=0, ['23']=0, ['24']=0, ['25']=0, ['26']=0, ['27']=0, ['28']=0, ['29']=0, ['30']=0, ['31']=0, ['32']=0, ['33']=0, ['34']=0, ['35']=0, ['36']=0, ['37']=0, ['38']=0, ['39']=0, ['40']=0, ['41']=0, ['42']=0, ['43']=0, ['44']=0, ['45']=0, ['46']=0, ['47']=0, ['48']=0, ['49']=0, ['50']=0, ['51']=0, ['52']=0, ['53']=0, ['54']=0, ['55']=0, ['56']=0, ['57']=0, ['58']=0, ['59']=0, ['60']=0, ['61']=0, ['62']=0, ['63']=0, ['64']=0, ['65']=0, ['66']=0, ['67']=0, ['68']=0, ['69']=0, ['70']=0, ['71']=0, ['72']=0, ['73']=0, ['74']=0, ['75']=0, ['76']=0, ['77']=0, ['78']=0, ['79']=0, ['80']=0, ['81']=0, ['82']=0, ['83']=0, ['84']=0, ['85']=0, ['86']=0, ['87']=0, ['88']=0, ['89']=0, ['90']=0, ['91']=0, ['92']=0, ['93']=0, ['94']=0, ['95']=0, ['96']=0, ['97']=0, ['98']=0, ['99']=0, ['100']=0}
local WRC_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['dark_blue'], ['12']=colors['dark_blue'], ['13']=colors['dark_blue'], ['14']=colors['dark_blue'], ['15']=colors['dark_blue'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], ['25']=colors['dark_blue'], ['26']=colors['dark_blue'], ['27']=colors['dark_blue'], ['28']=colors['dark_blue'], ['29']=colors['dark_blue'], ['30']=colors['dark_blue'], ['31']=colors['dark_blue'], ['32']=colors['dark_blue'], ['33']=colors['dark_blue'], ['34']=colors['dark_blue'], ['35']=colors['dark_blue'], ['36']=colors['dark_blue'], ['37']=colors['dark_blue'], ['38']=colors['dark_blue'], ['39']=colors['dark_blue'], ['40']=colors['dark_blue'], ['41']=colors['dark_blue'], ['42']=colors['dark_blue'], ['43']=colors['dark_blue'], ['44']=colors['dark_blue'], ['45']=colors['dark_blue'], ['46']=colors['dark_blue'], ['47']=colors['dark_blue'], ['48']=colors['dark_blue'], ['49']=colors['dark_blue'], ['50']=colors['dark_blue'], ['51']=colors['dark_blue'], ['52']=colors['dark_blue'], ['53']=colors['dark_blue'], ['54']=colors['dark_blue'], ['55']=colors['dark_blue'], ['56']=colors['dark_blue'], ['57']=colors['dark_blue'], ['58']=colors['dark_blue'], ['59']=colors['dark_blue'], ['60']=colors['dark_blue'], ['61']=colors['dark_blue'], ['62']=colors['dark_blue'], ['63']=colors['dark_blue'], ['64']=colors['dark_blue'], ['65']=colors['dark_blue'], ['66']=colors['dark_blue'], ['67']=colors['dark_blue'], ['68']=colors['dark_blue'], ['69']=colors['dark_blue'], ['70']=colors['dark_blue'], ['71']=colors['dark_blue'], ['72']=colors['dark_blue'], ['73']=colors['dark_blue'], ['74']=colors['dark_blue'], ['75']=colors['dark_blue'], ['76']=colors['dark_blue'], ['77']=colors['dark_blue'], ['78']=colors['dark_blue'], ['79']=colors['dark_blue'], ['80']=colors['dark_blue'], ['81']=colors['dark_blue'], ['82']=colors['dark_blue'], ['83']=colors['dark_blue'], ['84']=colors['dark_blue'], ['85']=colors['dark_blue'], ['86']=colors['dark_blue'], ['87']=colors['dark_blue'], ['88']=colors['dark_blue'], ['89']=colors['dark_blue'], ['90']=colors['dark_blue'], ['91']=colors['dark_blue'], ['92']=colors['dark_blue'], ['93']=colors['dark_blue'], ['94']=colors['dark_blue'], ['95']=colors['dark_blue'], ['96']=colors['dark_blue'], ['97']=colors['dark_blue'], ['98']=colors['dark_blue'], ['99']=colors['dark_blue'], ['100']=colors['dark_blue'], NC=colors['dark_blue'], Ret=colors['purple'], EX=colors['black'], DSQ=colors['black'], DNS=colors['white'], C=colors['white'], WD=colors['blank'], [' ']=colors['empty']}
local WRC_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', ['26']='26', ['27']='27', ['28']='28', ['29']='29', ['30']='30', ['31']='31', ['32']='32', ['33']='33', ['34']='34', ['35']='35', ['36']='36', ['37']='37', ['38']='38', ['39']='39', ['40']='40', ['41']='41', ['42']='42', ['43']='43', ['44']='44', ['45']='45', ['46']='46', ['47']='47', ['48']='48', ['49']='49', ['50']='50', ['51']='51', ['52']='52', ['53']='53', ['54']='54', ['55']='55', ['56']='56', ['57']='57', ['58']='58', ['59']='59', ['60']='60', ['61']='61', ['62']='62', ['63']='63', ['64']='64', ['65']='65', ['66']='66', ['67']='67', ['68']='68', ['69']='69', ['70']='70', ['71']='71', ['72']='72', ['73']='73', ['74']='74', ['75']='75', ['76']='76', ['77']='77', ['78']='78', ['79']='79', ['80']='80', ['81']='81', ['82']='82', ['83']='83', ['84']='84', ['85']='85', ['86']='86', ['87']='87', ['88']='88', ['89']='89', ['90']='90', ['91']='91', ['92']='92', ['93']='93', ['94']='94', ['95']='95', ['96']='96', ['97']='97', ['98']='98', ['99']='99', ['100']='100', NC='NC', Ret='Ret', EX='EX', DSQ='DSQ', DNS='DNS', C='C', WD='WD', [' ']=''}
local WRC_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100', 'NC', 'Ret', 'EX', 'DSQ', 'DNS', 'C', 'WD', ' '}
-- points
local points = calculate(championship, {}, results, WRC_points_system, WRC_sunday_points_system)
-- positions
local positions = classify(championship, results, points, WRC_classification)
-- table
local wikitable = convey(championship, races, {}, drivers, {}, {}, {}, {}, results, points, {}, positions, {}, WRC_points_system, WRC_sunday_points_system, WRC_color_system, WRC_display_system, sources)
return wikitable
end
---- WEC
local function WEC(championship, races, rlengths, drivers, teams, stints, results, sources)
-- points system
---- current points system
local WEC_points_system = {['1']={['6']=25, ['8']=38, ['10']=38, ['24']=50}, ['2']={['6']=18, ['8']=27, ['10']=27, ['24']=36}, ['3']={['6']=15, ['8']=23, ['10']=23, ['24']=30}, ['4']={['6']=12, ['8']=18, ['10']=18, ['24']=24}, ['5']={['6']=10, ['8']=15, ['10']=15, ['24']=20}, ['6']={['6']=8, ['8']=12, ['10']=12, ['24']=16}, ['7']={['6']=6, ['8']=9, ['10']=9, ['24']=12}, ['8']={['6']=4, ['8']=6, ['10']=6, ['24']=8}, ['9']={['6']=2, ['8']=3, ['10']=3, ['24']=4}, ['10']={['6']=1, ['8']=2, ['10']=2, ['24']=1}, ['11']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['12']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['13']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['14']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['15']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['16']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['17']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['18']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['19']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['20']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['21']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['22']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['23']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['24']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['25']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['26']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['27']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['28']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['29']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['30']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['31']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['32']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['33']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['34']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['35']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['36']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['37']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['38']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['39']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, ['40']={['6']=0, ['8']=0, ['10']=0, ['24']=0}, NC={['6']=0, ['8']=0, ['10']=0, ['24']=0}, Ret={['6']=0, ['8']=0, ['10']=0, ['24']=0}, DNQ={['6']=0, ['8']=0, ['10']=0, ['24']=0}, DNPQ={['6']=0, ['8']=0, ['10']=0, ['24']=0}, DSQ={['6']=0, ['8']=0, ['10']=0, ['24']=0}, DNS={['6']=0, ['8']=0, ['10']=0, ['24']=0}, WD={['6']=0, ['8']=0, ['10']=0, ['24']=0}, C={['6']=0, ['8']=0, ['10']=0, ['24']=0}, DNP={['6']=0, ['8']=0, ['10']=0, ['24']=0}, DNA={['6']=0, ['8']=0, ['10']=0, ['24']=0}, EX={['6']=0, ['8']=0, ['10']=0, ['24']=0}, [' ']={['6']=0, ['8']=0, ['10']=0, ['24']=0}}
local WEC_extra_points_system = {P=1, F=0}
local WEC_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['dark_blue'], ['12']=colors['dark_blue'], ['13']=colors['dark_blue'], ['14']=colors['dark_blue'], ['15']=colors['dark_blue'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], ['25']=colors['dark_blue'], ['26']=colors['dark_blue'], ['27']=colors['dark_blue'], ['28']=colors['dark_blue'], ['29']=colors['dark_blue'], ['30']=colors['dark_blue'], ['31']=colors['dark_blue'], ['32']=colors['dark_blue'], ['33']=colors['dark_blue'], ['34']=colors['dark_blue'], ['35']=colors['dark_blue'], ['36']=colors['dark_blue'], ['37']=colors['dark_blue'], ['38']=colors['dark_blue'], ['39']=colors['dark_blue'], ['40']=colors['dark_blue'], NC=colors['dark_blue'], Ret=colors['purple'], DNQ=colors['red'], DNPQ=colors['red'], DSQ=colors['black'], DNS=colors['white'], WD=colors['white'], C=colors['white'], DNP=colors['blank'], DNA=colors['blank'], EX=colors['blank'], [' ']=colors['empty']}
local WEC_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', ['26']='26', ['27']='27', ['28']='28', ['29']='29', ['30']='30', ['31']='31', ['32']='32', ['33']='33', ['34']='34', ['35']='35', ['36']='36', ['37']='37', ['38']='38', ['39']='39', ['40']='40', NC='NC', Ret='Ret', DNQ='DNQ', DNPQ='DNPQ', DSQ='DSQ', DNS='DNS', WD='WD', C='C', DNP='DNP', DNA='DNA', EX='EX', [' ']='', P="'''", F="''"}
local WEC_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', 'NC', 'Ret', 'DNQ', 'DNPQ', 'DSQ', 'DNS', 'WD', 'C', 'DNP', 'DNA', 'EX', ' '}
-- points
local points = calculate(championship, rlengths, results, WEC_points_system, WEC_extra_points_system)
-- positions
local positions = classify(championship, results, points, WEC_classification)
-- table
local wikitable = convey(championship, races, {}, drivers, {}, teams, stints, {}, results, points, {}, positions, {}, WEC_points_system, WEC_extra_points_system, WEC_color_system, WEC_display_system, sources)
return wikitable
end
---- IMSA
local function IMSA(championship, races, drivers, results, auxresults, sources)
-- points system
---- current points system
local IMSA_points_system = {['1']=350, ['2']=320, ['3']=300, ['4']=280, ['5']=260, ['6']=250, ['7']=240, ['8']=230, ['9']=220, ['10']=210, ['11']=200, ['12']=190, ['13']=180, ['14']=170, ['15']=160, ['16']=150, ['17']=140, ['18']=130, ['19']=120, ['20']=110, ['21']=100, ['22']=90, ['23']=80, ['24']=70, ['25']=60, ['26']=50, ['27']=40, ['28']=30, ['29']=20, ['30']=10, ['31']=10, ['32']=10, ['33']=10, ['34']=10, ['35']=10, ['36']=10, ['37']=10, ['38']=10, ['39']=10, ['40']=10, ['41']=10, ['42']=10, ['43']=10, ['44']=10, ['45']=10, ['46']=10, ['47']=10, ['48']=10, ['49']=10, ['50']=10, ['51']=10, ['52']=10, ['53']=10, ['54']=10, ['55']=10, ['56']=10, ['57']=10, ['58']=10, ['59']=10, ['60']=10, ['61']=10, NC=0, Ret=0, DNQ=0, DNPQ=0, DSQ=0, DNS=0, WD=0, C=0, DNP=0, DNA=0, EX=0, [' ']=0}
local IMSA_qualifying_points_system = {P=35, ['2']=32, ['3']=30, ['4']=28, ['5']=26, ['6']=25, ['7']=24, ['8']=23, ['9']=22, ['10']=21, ['11']=20, ['12']=19, ['13']=18, ['14']=17, ['15']=16, ['16']=15, ['17']=14, ['18']=13, ['19']=12, ['20']=11, ['21']=10, ['22']=9, ['23']=8, ['24']=7, ['25']=6, ['26']=5, ['27']=4, ['28']=3, ['29']=2, ['30']=1, ['31']=1, ['32']=1, ['33']=1, ['34']=1, ['35']=1, ['36']=1, ['37']=1, ['38']=1, ['39']=1, ['40']=1, ['41']=1, ['42']=1, ['43']=1, ['44']=1, ['45']=1, ['46']=1, ['47']=1, ['48']=1, ['49']=1, ['50']=1, ['51']=1, ['52']=1, ['53']=1, ['54']=1, ['55']=1, ['56']=1, ['57']=1, ['58']=1, ['59']=1, ['60']=1, ['61']=1, F=0, NC=0, Ret=0, DNQ=0, DNPQ=0, DSQ=0, DNS=0, WD=0, C=0, DNP=0, DNA=0, EX=0, [' ']=0}
local IMSA_MEC_points_system = {['1']=5, ['2']=4, ['3']=3, ['4']=2, ['5']=2, ['6']=2, ['7']=2, ['8']=2, ['9']=2, ['10']=2, ['11']=2, ['12']=2, ['13']=2, ['14']=2, ['15']=2, ['16']=2, ['17']=2, ['18']=2, ['19']=2, ['20']=2, ['21']=2, ['22']=2, ['23']=2, ['24']=2, ['25']=2, ['26']=2, ['27']=2, ['28']=2, ['29']=2, ['30']=2, ['31']=2, ['32']=2, ['33']=2, ['34']=2, ['35']=2, ['36']=2, ['37']=2, ['38']=2, ['39']=2, ['40']=2, ['41']=2, ['42']=2, ['43']=2, ['44']=2, ['45']=2, ['46']=2, ['47']=2, ['48']=2, ['49']=2, ['50']=2, ['51']=2, ['52']=2, ['53']=2, ['54']=2, ['55']=2, ['56']=2, ['57']=2, ['58']=2, ['59']=2, ['60']=2, ['61']=2, NC=0, Ret=0, DNQ=0, DNPQ=0, DSQ=0, DNS=0, WD=0, C=0, DNP=0, DNA=0, EX=0, [' ']=0}
local IMSA_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['green'], ['12']=colors['green'], ['13']=colors['green'], ['14']=colors['green'], ['15']=colors['green'], ['16']=colors['green'], ['17']=colors['green'], ['18']=colors['green'], ['19']=colors['green'], ['20']=colors['green'], ['21']=colors['green'], ['22']=colors['green'], ['23']=colors['green'], ['24']=colors['green'], ['25']=colors['green'], ['26']=colors['green'], ['27']=colors['green'], ['28']=colors['green'], ['29']=colors['green'], ['30']=colors['green'], ['31']=colors['green'], ['32']=colors['green'], ['33']=colors['green'], ['34']=colors['green'], ['35']=colors['green'], ['36']=colors['green'], ['37']=colors['green'], ['38']=colors['green'], ['39']=colors['green'], ['40']=colors['green'], ['41']=colors['green'], ['42']=colors['green'], ['43']=colors['green'], ['44']=colors['green'], ['45']=colors['green'], ['46']=colors['green'], ['47']=colors['green'], ['48']=colors['green'], ['49']=colors['green'], ['50']=colors['green'], ['51']=colors['green'], ['52']=colors['green'], ['53']=colors['green'], ['54']=colors['green'], ['55']=colors['green'], ['56']=colors['green'], ['57']=colors['green'], ['58']=colors['green'], ['59']=colors['green'], ['60']=colors['green'], ['61']=colors['green'], NC=colors['dark_blue'], Ret=colors['purple'], DNQ=colors['red'], DNPQ=colors['red'], DSQ=colors['black'], DNS=colors['white'], WD=colors['white'], C=colors['white'], DNP=colors['blank'], DNA=colors['blank'], EX=colors['blank'], [' ']=colors['empty']}
local IMSA_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', ['26']='26', ['27']='27', ['28']='28', ['29']='29', ['30']='30', ['31']='31', ['32']='32', ['33']='33', ['34']='34', ['35']='35', ['36']='36', ['37']='37', ['38']='38', ['39']='39', ['40']='40', ['41']='41', ['42']='42', ['43']='43', ['44']='44', ['45']='45', ['46']='46', ['47']='47', ['48']='48', ['49']='49', ['50']='50', ['51']='51', ['52']='52', ['53']='53', ['54']='54', ['55']='55', ['56']='56', ['57']='57', ['58']='58', ['59']='59', ['60']='60', ['61']='61', NC='NC', Ret='Ret', DNQ='DNQ', DNPQ='DNPQ', DSQ='DSQ', DNS='DNS', WD='WD', C='C', DNP='DNP', DNA='DNA', EX='EX', [' ']='', P="'''", F="''"}
local IMSA_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', 'NC', 'Ret', 'DNQ', 'DNPQ', 'DSQ', 'DNS', 'WD', 'C', 'DNP', 'DNA', 'EX', ' '}
-- points
local points = calculate(championship, {}, results, IMSA_points_system, IMSA_qualifying_points_system)
local MEC_points = calculate('MEC', {}, auxresults, IMSA_MEC_points_system, IMSA_MEC_points_system)
-- positions
local positions = classify(championship, results, points, IMSA_classification)
local MEC_positions = classify('MEC', auxresults, MEC_points, IMSA_classification)
-- table
local wikitable = convey(championship, races, subraces, drivers, {}, {}, {}, {}, results, points, MEC_points, positions, MEC_positions, IMSA_points_system, IMSA_qualifying_points_system, IMSA_color_system, IMSA_display_system, sources)
return wikitable
end
---- GTWC
local function GTWCE(championship, races, rlengths, subraces, drivers, teams, stints, results, sources)
-- points system
---- current points system
local GTWCE_points_system = {['1']={['1']=16.5, ['3']=25, ['6']=33, ['12']=12, ['24']=25}, ['2']={['1']=12, ['3']=18, ['6']=24, ['12']=9, ['24']=18}, ['3']={['1']=9.5, ['3']=15, ['6']=19, ['12']=7, ['24']=15}, ['4']={['1']=7.5, ['3']=12, ['6']=15, ['12']=6, ['24']=12}, ['5']={['1']=6, ['3']=10, ['6']=12, ['12']=5, ['24']=10}, ['6']={['1']=4.5, ['3']=8, ['6']=9, ['12']=4, ['24']=8}, ['7']={['1']=3, ['3']=6, ['6']=6, ['12']=3, ['24']=6}, ['8']={['1']=2, ['3']=4, ['6']=4, ['12']=2, ['24']=4}, ['9']={['1']=1, ['3']=2, ['6']=2, ['12']=1, ['24']=2}, ['10']={['1']=0.5, ['3']=1, ['6']=1, ['12']=0, ['24']=1}, ['11']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['12']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['13']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['14']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['15']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['16']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['17']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['18']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['19']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['20']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['21']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['22']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['23']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['24']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['25']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['26']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['27']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['28']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['29']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['30']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['31']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['32']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['33']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['34']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['35']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['36']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['37']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['38']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['39']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['40']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['41']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['42']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['43']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['44']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['45']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['46']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['47']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['48']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['49']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['50']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['51']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['52']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['53']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['54']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['55']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['56']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['57']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['58']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['59']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['60']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['61']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['62']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['63']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['64']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['65']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['66']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['67']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['68']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['69']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['70']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['71']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['72']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['73']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['74']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['75']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, ['76']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, NC={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, Ret={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, DSQ={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, EX={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, DNS={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, C={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, WD={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}, [' ']={['1']=0, ['3']=0, ['6']=0, ['12']=0, ['24']=0}}
local GTWCE_extra_points_system = {P=1, F=0}
local GTWCE_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['dark_blue'], ['12']=colors['dark_blue'], ['13']=colors['dark_blue'], ['14']=colors['dark_blue'], ['15']=colors['dark_blue'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], ['25']=colors['dark_blue'], ['26']=colors['dark_blue'], ['27']=colors['dark_blue'], ['28']=colors['dark_blue'], ['29']=colors['dark_blue'], ['30']=colors['dark_blue'], ['31']=colors['dark_blue'], ['32']=colors['dark_blue'], ['33']=colors['dark_blue'], ['34']=colors['dark_blue'], ['35']=colors['dark_blue'], ['36']=colors['dark_blue'], ['37']=colors['dark_blue'], ['38']=colors['dark_blue'], ['39']=colors['dark_blue'], ['40']=colors['dark_blue'], ['41']=colors['dark_blue'], ['42']=colors['dark_blue'], ['43']=colors['dark_blue'], ['44']=colors['dark_blue'], ['45']=colors['dark_blue'], ['46']=colors['dark_blue'], ['47']=colors['dark_blue'], ['48']=colors['dark_blue'], ['49']=colors['dark_blue'], ['50']=colors['dark_blue'], ['51']=colors['dark_blue'], ['52']=colors['dark_blue'], ['53']=colors['dark_blue'], ['54']=colors['dark_blue'], ['55']=colors['dark_blue'], ['56']=colors['dark_blue'], ['57']=colors['dark_blue'], ['58']=colors['dark_blue'], ['59']=colors['dark_blue'], ['60']=colors['dark_blue'], ['61']=colors['dark_blue'], ['62']=colors['dark_blue'], ['63']=colors['dark_blue'], ['64']=colors['dark_blue'], ['65']=colors['dark_blue'], ['66']=colors['dark_blue'], ['67']=colors['dark_blue'], ['68']=colors['dark_blue'], ['69']=colors['dark_blue'], ['70']=colors['dark_blue'], ['71']=colors['dark_blue'], ['72']=colors['dark_blue'], ['73']=colors['dark_blue'], ['74']=colors['dark_blue'], ['75']=colors['dark_blue'], ['76']=colors['dark_blue'], NC=colors['dark_blue'], Ret=colors['purple'], DSQ=colors['black'], EX=colors['black'], DNS=colors['white'], C=colors['white'], WD=colors['white'], [' ']=colors['empty']}
local GTWCE_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', ['26']='26', ['27']='27', ['28']='28', ['29']='29', ['30']='30', ['31']='31', ['32']='32', ['33']='33', ['34']='34', ['35']='35', ['36']='36', ['37']='37', ['38']='38', ['39']='39', ['40']='40', ['41']='41', ['42']='42', ['43']='43', ['44']='44', ['45']='45', ['46']='46', ['47']='47', ['48']='48', ['49']='49', ['50']='50', ['51']='51', ['52']='52', ['53']='53', ['54']='54', ['55']='55', ['56']='56', ['57']='57', ['58']='58', ['59']='59', ['60']='60', ['61']='61', ['62']='62', ['63']='63', ['64']='64', ['65']='65', ['66']='66', ['67']='67', ['68']='68', ['69']='69', ['70']='70', ['71']='71', ['72']='72', ['73']='73', ['74']='74', ['75']='75', ['76']='76', NC='NC', Ret='Ret', DSQ='DSQ', EX='EX', DNS='DNS', C='C', WD='WD', [' ']='', P='P', F='F'}
local GTWCE_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', 'NC', 'Ret', 'DSQ', 'EX', 'DNS', 'C', 'WD', ' '}
-- points
local points = calculate(championship, rlengths, results, GTWCE_points_system, GTWCE_extra_points_system)
-- positions
local positions = classify(championship, results, points, GTWCE_classification)
-- table
local wikitable = convey(championship, races, subraces, drivers, {}, teams, stints, {}, results, points, {}, positions, {}, GTWCE_points_system, GTWCE_extra_points_system, GTWCE_color_system, GTWCE_display_system, sources)
return wikitable
end
---- MotoGP
local function MOTOGP(championship, races, drivers, teams, stints, manufacturers, results, sources)
-- points system
---- current points system
local MOTOGP_points_system = {['1']=25, ['2']=20, ['3']=16, ['4']=13, ['5']=11, ['6']=10, ['7']=9, ['8']=8, ['9']=7, ['10']=6, ['11']=5, ['12']=4, ['13']=3, ['14']=2, ['15']=1, ['16']=0, ['17']=0, ['18']=0, ['19']=0, ['20']=0, ['21']=0, ['22']=0, ['23']=0, ['24']=0, ['25']=0, ['26']=0, ['27']=0, ['28']=0, ['29']=0, ['30']=0, NC=0, Ret=0, DNQ=0, DNPQ=0, DSQ=0, DNS=0, WD=0, DNP=0, DNA=0, EX=0, [' ']=0}
local MOTOGP_sprint_points_system = {['1']=12, ['2']=9, ['3']=7, ['4']=6, ['5']=5, ['6']=4, ['7']=3, ['8']=2, ['9']=1, P=0, F=0}
local MOTOGP_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['green'], ['12']=colors['green'], ['13']=colors['green'], ['14']=colors['green'], ['15']=colors['green'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], ['25']=colors['dark_blue'], ['26']=colors['dark_blue'], ['27']=colors['dark_blue'], ['28']=colors['dark_blue'], ['29']=colors['dark_blue'], ['30']=colors['dark_blue'], NC=colors['dark_blue'], Ret=colors['purple'], DNQ=colors['red'], DNPQ=colors['red'], DSQ=colors['black'], DNS=colors['white'], WD=colors['white'], C=colors['white'], DNP=colors['blank'], DNA=colors['blank'], EX=colors['blank'], [' ']=colors['empty']}
local MOTOGP_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', ['25']='25', ['26']='26', ['27']='27', ['28']='28', ['29']='29', ['30']='30', NC='NC', Ret='Ret', DNQ='DNQ', DNPQ='DNPQ', DSQ='DSQ', DNS='DNS', WD='WD', C='C', DNP='DNP', DNA='DNA', EX='EX', [' ']=''}
local MOTOGP_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', 'NC', 'Ret', 'DNQ', 'DNPQ', 'DSQ', 'DNS', 'WD', 'C', 'DNP', 'DNA', 'EX', ' '}
-- points
local points = calculate(championship, {}, results, MOTOGP_points_system, MOTOGP_sprint_points_system)
-- positions
local positions = classify(championship, results, points, MOTOGP_classification)
-- table
local wikitable = convey(championship, races, {}, drivers, rookies, teams, stints, manufacturers, results, points, {}, positions, {}, MOTOGP_points_system, MOTOGP_sprint_points_system, MOTOGP_color_system, MOTOGP_display_system, sources)
return wikitable
end
---- FE
local function FE(championship, races, subraces, drivers, results, sources)
local FE_points_system = {['1']=25, ['2']=18, ['3']=15, ['4']=12, ['5']=10, ['6']=8, ['7']=6, ['8']=4, ['9']=2, ['10']=1, ['11']=0, ['12']=0, ['13']=0, ['14']=0, ['15']=0, ['16']=0, ['17']=0, ['18']=0, ['19']=0, ['20']=0, ['21']=0, ['22']=0, ['23']=0, ['24']=0, NC=0, Ret=0, DNQ=0, DNPQ=0, DSQ=0, DNS=0, WD=0, C=0, DNP=0, DNA=0, EX=0, [' ']=0}
local FE_extra_points_system = {P=3, F=1}
local FE_color_system = {['1']=colors['gold'], ['2']=colors['silver'], ['3']=colors['bronze'], ['4']=colors['green'], ['5']=colors['green'], ['6']=colors['green'], ['7']=colors['green'], ['8']=colors['green'], ['9']=colors['green'], ['10']=colors['green'], ['11']=colors['dark_blue'], ['12']=colors['dark_blue'], ['13']=colors['dark_blue'], ['14']=colors['dark_blue'], ['15']=colors['dark_blue'], ['16']=colors['dark_blue'], ['17']=colors['dark_blue'], ['18']=colors['dark_blue'], ['19']=colors['dark_blue'], ['20']=colors['dark_blue'], ['21']=colors['dark_blue'], ['22']=colors['dark_blue'], ['23']=colors['dark_blue'], ['24']=colors['dark_blue'], NC=colors['dark_blue'], Ret=colors['purple'], DNQ=colors['red'], DNPQ=colors['red'], DSQ=colors['black'], DNS=colors['white'], WD=colors['white'], C=colors['white'], DNP=colors['blank'], DNA=colors['blank'], EX=colors['blank'], [' ']=colors['empty']}
local FE_display_system = {['1']='1', ['2']='2', ['3']='3', ['4']='4', ['5']='5', ['6']='6', ['7']='7', ['8']='8', ['9']='9', ['10']='10', ['11']='11', ['12']='12', ['13']='13', ['14']='14', ['15']='15', ['16']='16', ['17']='17', ['18']='18', ['19']='19', ['20']='20', ['21']='21', ['22']='22', ['23']='23', ['24']='24', NC='NC', Ret='Ret', DNQ='DNQ', DNPQ='DNPQ', DSQ='DSQ', DNS='DNS', WD='WD', C='C', DNP='DNP', DNA='DNA', EX='EX', [' ']='', P="'''", F="''"}
local FE_classification = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', 'NC', 'Ret', 'DNQ', 'DNPQ', 'DSQ', 'DNS', 'WD', 'C', 'DNP', 'DNA', 'EX', ' '}
-- points
local points = calculate(championship, {}, results, FE_points_system, FE_extra_points_system)
-- positions
local positions = classify(championship, results, points, FE_classification)
-- table
local wikitable = convey(championship, races, subraces, drivers, {}, {}, {}, {}, results, points, {}, positions, {}, FE_points_system, FE_extra_points_system, FE_color_system, FE_display_system, sources)
return wikitable
end
---- WSBK
---- NASCAR
---- championship table
local championships = {F1=F1, INDYCAR=INDYCAR, WRC=WRC, WEC=WEC, IMSA=IMSA, GTWCE=GTWCE, MOTOGP=MOTOGP, FE=FE}
-- display
if championship == 'F1' or championship == 'WRC' then
return championships[championship](championship, races, drivers, results, sources)
elseif championship == 'INDYCAR' then
return championships[championship](championship, races, drivers, rookies, results, sources)
elseif championship == 'WEC' then
return championships[championship](championship, races, rlengths, drivers, teams, stints, results, sources)
elseif championship == 'IMSA' then
return championships[championship](championship, races, drivers, results, auxresults, sources)
elseif championship == 'GTWCE' then
return championships[championship](championship, races, rlengths, subraces, drivers, teams, stints, results, sources)
elseif championship == 'MOTOGP' then
return championships[championship](championship, races, drivers, teams, stints, manufacturers, results, sources)
elseif championship == 'FE' then
return championships[championship](championship, races, subraces, drivers, results, sources)
else
local points = calculate(nil, rlengths, results, ex_main_points_system, ex_side_points_system)
local positions = classify(nil, results, points, ex_classification)
local wikitable = convey(nil, races, subraces, drivers, rookies, teams, stints, manufacturers, results, points, {}, positions, {}, ex_main_points_system, ex_side_points_system, ex_color_system, ex_display_system)
return wikitable
end
end
return p