پودمان:Fb overview: تفاوت میان نسخهها
ظاهر
محتوای حذفشده محتوای افزودهشده
جز اصلاح پرانتزها برچسب: واگردانی دستی |
ABBAS K.CH (بحث | مشارکتها) اصلاح اصطلاحات برچسبها: ویرایش همراه ویرایش از وبگاه همراه ویرایش پیشرفتهٔ همراه |
||
خط ۷: | خط ۷: | ||
local labels = { |
local labels = { |
||
competition = 'رقابت', |
competition = 'رقابت', |
||
firstmatch = 'اولین |
firstmatch = 'اولین بازی', |
||
lastmatch = 'آخرین |
lastmatch = 'آخرین بازی', |
||
startinground = ' |
startinground = 'شروع دور', |
||
finalposition = ' |
finalposition = 'جایگاه نهایی', |
||
record = ' |
record = 'آمار', |
||
total = ' |
total = 'مجموع', |
||
source = 'منبع: ', |
source = 'منبع: ', |
||
lastupdated = 'آخرین |
lastupdated = 'آخرین بهروزرسانی در: ', |
||
sourcedefault = '[[#رقابتها|رقابتها]]', |
sourcedefault = '[[#رقابتها|رقابتها]]', |
||
unknownparameter = 'پارامتر ناشناخته: ', |
unknownparameter = 'پارامتر ناشناخته: ', |
||
pld = '<abbr title="بازیهای انجام شده"> |
pld = '<abbr title="بازیهای انجام شده">بلزی</abbr>', |
||
w = '<abbr title=" |
w = '<abbr title="تعداد برد">ب</abbr>', |
||
d = '<abbr title=" |
d = '<abbr title="تعداد تساوی">ت</abbr>', |
||
l = '<abbr title=" |
l = '<abbr title="تعداد شکست">ش</abbr>', |
||
pf = '<abbr title="امتیازهای |
pf = '<abbr title="امتیازهای کسب شده">اک</abbr>', |
||
pa = '<abbr title="امتیازهای |
pa = '<abbr title="امتیازهای از دست داده">اد</abbr>', |
||
pd = '<abbr title="تفاضل امتیاز">تا</abbr>', |
pd = '<abbr title="تفاضل امتیاز">تا</abbr>', |
||
gf = '<abbr title="گلهای زده">گز</abbr>', |
gf = '<abbr title="گلهای زده">گز</abbr>', |
||
خط ۲۹: | خط ۲۹: | ||
wp = '<abbr title="درصد برد">% برد</abbr>', |
wp = '<abbr title="درصد برد">% برد</abbr>', |
||
winner = 'برنده', |
winner = 'برنده', |
||
runnerup = ' |
runnerup = 'نایبقهرمان', |
||
runnersup = ' |
runnersup = 'نایبقهرمان' |
||
} |
} |
||
نسخهٔ ۵ ژوئیهٔ ۲۰۲۲، ساعت ۱۵:۱۲
-- This implements {{fb overview}}
local p = {}
local Date2Fa = require('Module:Date2fa').convert
-- Internationalisation
local trackingcat = 'Category:Pages using sports overview with unknown parameters'
local labels = {
competition = 'رقابت',
firstmatch = 'اولین بازی',
lastmatch = 'آخرین بازی',
startinground = 'شروع دور',
finalposition = 'جایگاه نهایی',
record = 'آمار',
total = 'مجموع',
source = 'منبع: ',
lastupdated = 'آخرین بهروزرسانی در: ',
sourcedefault = '[[#رقابتها|رقابتها]]',
unknownparameter = 'پارامتر ناشناخته: ',
pld = '<abbr title="بازیهای انجام شده">بلزی</abbr>',
w = '<abbr title="تعداد برد">ب</abbr>',
d = '<abbr title="تعداد تساوی">ت</abbr>',
l = '<abbr title="تعداد شکست">ش</abbr>',
pf = '<abbr title="امتیازهای کسب شده">اک</abbr>',
pa = '<abbr title="امتیازهای از دست داده">اد</abbr>',
pd = '<abbr title="تفاضل امتیاز">تا</abbr>',
gf = '<abbr title="گلهای زده">گز</abbr>',
ga = '<abbr title="گلهای خورده">گخ</abbr>',
gd = '<abbr title="تفاضل گل">تگ</abbr>',
wp = '<abbr title="درصد برد">% برد</abbr>',
winner = 'برنده',
runnerup = 'نایبقهرمان',
runnersup = 'نایبقهرمان'
}
-- Main function
function p.main(frame)
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame)
-- Get the row numbers and check for invalid input
local rownumbers = {}
local unknown = {}
local showdates, showrounds, showpos = false, false, false
local maxrow = -1
local rowlimit = 99
local function addrownumber(num, flag)
if num <= rowlimit then
table.insert(rownumbers, num)
maxrow = (num > maxrow) and num or maxrow
return true
end
return flag
end
for k, v in pairs(args) do
k = tostring(k)
local n = tonumber(k:match('^[a-z]+(%d+)$') or '-1')
if k == 'u' or k == 'c' or k == 's' or k == 'pts' then
-- These are valid
elseif k:match('^[cwdlfa]%d+$') then
local added = addrownumber(n, false)
elseif k:match('[dfl]m%d%d*$') then
showdates = addrownumber(n, showdates)
elseif k:match('sr%d%d*$') then
showrounds = addrownumber(n, showrounds)
elseif k:match('fp%d%d*$') then
showpos = addrownumber(n, showpos)
else
table.insert(unknown, k)
end
end
-- Sort the row numbers
table.sort(rownumbers)
-- Remove duplicates
for i=#rownumbers,2,-1 do
if rownumbers[i-1] == rownumbers[i] then
table.remove(rownumbers,i)
end
end
local root = {}
if maxrow > -1 then
local WDL = require('Module:WDL').main
-- Make the table
table.insert(root,'{| class="wikitable" style="text-align:center"')
-- Add the headers
table.insert(root,'|-')
table.insert(root,'! rowspan=2 | ' .. labels['competition'])
local totspan = 1
if showdates then
table.insert(root,'! rowspan=2 | ' .. labels['firstmatch'])
table.insert(root,'! rowspan=2 | ' .. labels['lastmatch'])
totspan = totspan + 2
end
if showrounds then
table.insert(root,'! rowspan=2 | ' .. labels['startinground'])
totspan = totspan + 1
end
if showpos then
table.insert(root,'! rowspan=2 | ' .. labels['finalposition'])
totspan = totspan + 1
end
table.insert(root,'! colspan=8 | ' .. labels['record'])
table.insert(root,'|-')
table.insert(root,'! ' .. labels['pld'])
table.insert(root,'! ' .. labels['w'])
table.insert(root,'! ' .. labels['d'])
table.insert(root,'! ' .. labels['l'])
local pg = args.pts and args.pts == 'y' and 'p' or 'g'
table.insert(root,'! ' .. labels[pg .. 'f'])
table.insert(root,'! ' .. labels[pg .. 'a'])
table.insert(root,'! ' .. labels[pg .. 'd'])
table.insert(root,'! ' .. labels['wp'])
local evenodd = 'odd'
-- Now add the rows
local wtot, dtot, ltot, ftot, atot = 0, 0, 0, 0, 0
for i=1,#rownumbers do
local r = rownumbers[i]
if evenodd == 'even' then
table.insert(root,'|- style="background-color:#EEE"')
evenodd = 'odd'
else
table.insert(root,'|-')
evenodd = 'even'
end
table.insert(root,'| ' .. (args['c' .. r] or ''))
if showdates then
if args['dm' .. r] then
table.insert(root,'| colspan=2 | ' .. Date2Fa(args['dm' .. r]))
else
table.insert(root,'| ' .. (Date2Fa(args['fm' .. r]) or ''))
table.insert(root,'| ' .. (Date2Fa(args['lm' .. r]) or ''))
end
end
if showrounds then
table.insert(root,'| ' .. (args['sr' .. r] or ''))
end
if showpos then
local fp = args['fp' .. r] or ''
local bg =
(fp:match('^' .. labels['winner']) and 'gold') or
(fp:match('^' .. labels['runnersup']) and 'silver') or
(fp:match('^' .. labels['runnerup']) and 'silver') or nil
if bg then
table.insert(root,'| style="background-color:' .. bg .. '" | ' .. fp)
else
table.insert(root,'| ' .. fp)
end
end
wtot = wtot + (tonumber(args['w' .. r]) or 0)
dtot = dtot + (tonumber(args['d' .. r]) or 0)
ltot = ltot + (tonumber(args['l' .. r]) or 0)
ftot = ftot + (tonumber(args['f' .. r]) or 0)
atot = atot + (tonumber(args['a' .. r]) or 0)
table.insert(root, WDL(frame,
{nil, args['w' .. r], args['d' .. r], args['l' .. r],
['for'] = args['f' .. r], ['against'] = args['a' .. r], ['diff'] = 'yes'})
)
end
table.insert(root,'|-')
if totspan > 1 then
table.insert(root,'! colspan=' .. totspan .. ' | ' .. labels['total'])
else
table.insert(root,'! ' .. labels['total'])
end
table.insert(root, WDL(frame,
{wtot+dtot+ltot, wtot, dtot, ltot, ['total'] = 'y',
['for'] = ftot, ['against'] = atot, ['diff'] = 'yes'})
)
table.insert(root, '|} \n<div style="font-size: 90%; margin-bottom: 0.5em;">\n')
if args.u then
table.insert(root, labels['lastupdated'] .. args.u .. '<br>')
end
table.insert(root, labels['source'] .. (args.s or labels['sourcedefault']) .. '\n</div>')
end
if #unknown > 0 then
local unknown_params = require('Module:If preview')._warning({
labels['unknownparameter'] ..
'<code>' ..
table.concat(unknown, '</code>, <code>') ..
'</code>.'
}) .. '[[' .. trackingcat .. '|' .. unknown[1] .. ' ]]'
table.insert(root, unknown_params)
end
return table.concat(root, '\n')
end
return p