Modul:Sports results: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
baru |
Tidak ada ringkasan suntingan |
||
Baris 2:
-- See documentation for details
require('
local p = {}
Baris 16:
local team_list = {}
local ii, ii_fw, bg_col, team_name, team_code_ii
-- Edit links if requested
local template_name = Args['template_name'] or ''
local edit_links = template_name == '' and ''
or frame:expandTemplate{ title = 'navbar',
args = { mini=1, style='float:right', template_name} }
-- Load some other modules
local p_sub = require('
-- Read in number of consecutive teams (ignore entries after skipping a spot)
Baris 35 ⟶ 41:
-- Create header
-- Open table
table.insert(t,'{|class="wikitable plainrowheaders" style="text-align:center;"\n')
-- First column
t_return.count = 0 -- Dummy parameter, using subfunction call seems best at this point because both module are intertwined
t_return.tab_text = t -- Actual text
t_return = p_sub.colhead(t_return,'auto', edit_links .. ' Home \\ Away')
-- Other columns passed to subfunction
t_return = p.header(t_return,Args,p_sub,N_teams,team_list)
Baris 49 ⟶ 55:
team_code_ii = team_list[ii]
team_name = Args['name_'..team_code_ii] or team_code_ii
local ii_style = 'text-align:right;'
if ii and ii == ii_show then
ii_style = ii_style .. 'font-weight:bold;'
end
-- Team names
table.insert(t,'|- \n')
table.insert(t,'! scope="row" style="
.. ii_style ..'"| '..team_name..'\n') -- Position number -- Then individual results
Baris 64 ⟶ 74:
local update = Args['update'] or 'unknown'
local start_date = Args['start_date'] or 'unknown'
local source = Args['source'] or frame:expandTemplate{ title = '
-- Create footer text
Baris 72 ⟶ 82:
elseif update=='' then
-- Empty parameter
table.insert(t_footer,'
elseif string.lower(update)=='future' then
-- Future start date
table.insert(t_footer,'
else
table.insert(t_footer,'
end
if (Args['matches_style'] or '') == 'FBR' then
table.insert(t_footer, '<br>Warna: Biru = tim tuan rumah menang; Kuning = seri; Merah = tim tamu menang.')
end
if (Args['a_note'] or '') ~= '' then
table.insert(t_footer, '<br>Untuk pertandingan yang akan datang, a menandakan tersedianya artikel mengenai pertandingan tersebut.')
end
▲ table.insert(t_footer,'Source: '..source)
-- As reflist size text
t_footer = '<div class="reflist">'..table.concat(t_footer)..'</div>'
Baris 89 ⟶ 105:
-- Other functions
local function get_short_name(s, t, n)
-- return short name if defined
if s and s ~= '' then
return s
end
-- replace link text in name with team abbr if possible
if n and t and n:match('(%[%[[^%[%]]*%]%])') then
n = mw.ustring.gsub(n, '(%[%[[^%|%]]*%|)[^%|%]]*(%]%])', '%1' .. t .. '%2')
n = mw.ustring.gsub(n, '(%[%[[^%|%]]*)(%]%])', '%1|' .. t .. '%2')
return n
end
-- nothing worked, so just return the unlinked team abbr
return t or ''
end
local function get_score_background(s)
local s1, s2
-- Define the colouring
local wc, lc, tc = '#BBF3FF', '#FFBBBB', '#FFFFBB'
-- delink if necessary
if s:match('^%s*%[%[[^%[%]]*%|([^%[%]]*)%]%]') then
s = s:match('^%s*%[%[[^%[%]]*%|([^%[%]]*)%]%]')
end
-- get the scores
s1 = tonumber(mw.ustring.gsub( s or '',
'^%s*([%d][%d]*)%s*–%s*([%d][%d]*).*', '%1' ) or '') or ''
s2 = tonumber(mw.ustring.gsub( s or '',
'^%s*([%d][%d]*)%s*–%s*([%d][%d]*).*', '%2' ) or '') or ''
-- return colouring if possible
if s1 ~= '' and s2 ~= '' then
return (s1 > s2) and wc or ((s2 > s1) and lc or tc)
else
return 'transparent'
end
end
local function format_score(s)
s = mw.ustring.gsub(s or '', '^%s*([%d]+)%s*[–−—%-]%s*([%d]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*([%d]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*(%[%[[^%[%]]*%|[%d]+)%s*%-%s*([%d]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*(%[%[[^%[%]]*%|[%d]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d]+)', '%1–%2')
return s
end
function p.header(tt,Args,p_sub,N_teams,team_list)
local ii, team_code_ii, short_name
Baris 100 ⟶ 163:
for ii=top_pos,N_teams do
team_code_ii = team_list[ii]
short_name = get_short_name(Args['short_'..team_code_ii],
team_code_ii, Args['name_'..team_code_ii])
tt = p_sub.colhead(tt,col_width,short_name)
end
Baris 111 ⟶ 175:
local jj, fw, bg, result, team_code_ii, team_code_jj
local cell_bold = false
-- Set score cell style
local matches_style = Args['matches_style'] or ''
team_code_ii = team_list[ii]
Baris 134 ⟶ 201:
team_code_jj = team_list[jj]
result = Args['match_'..team_code_ii..'_'..team_code_jj] or ''
-- Reformat dashes
if result ~= '' then
result = format_score(result)
end
-- Background coloring if enabled
if matches_style == 'FBR' and result ~= '' then
bg = 'background-color:' .. get_score_background(result) .. ';'
end
table.insert(tt,'| style="white-space:nowrap;'..fw..bg..'" |'..result..'\n')
end
|