বিষয়বস্তুতে চলুন

ব্যবহারকারী:অনুরাগ/খেলাঘর ২

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

--[[

   Module for generating league progresion tables intended for use in ICC World Cups and Championships articles.

]]

local _module = {}

_module.create = function(frame)

   ------------- Functions -------------
   local strFind = string.find
   local strMatch = string.match
   local strSplit = mw.text.split
   local strFormat = string.format
   local strTrim = mw.text.trim
   local strSub = string.sub
   local strRepeat = string.rep
   local strUpper = string.upper
   
   ------------- Arguments -------------
   local args = frame.args
   local matchesPerTeam = tonumber(args.matchesPerTeam) or error("Invalid or missing parameter 'matchesPerTeam'")
   local teams = strSplit(args.teams or error("Invalid or missing parameter 'teams'"), ',', true)
   local matchReportArticle = args.matchReportArticle or 
   local caption = args.caption
   -- The colours for each result
   local colours_win           = "#99FF99"   -- জয় 
   local colours_loss          = "#FFDDDD"   -- হার
   --local colours_tie           = ""
   local colours_noResult      = "#DFDFFF"   -- ফলাফল হয়নি 
   local colours_eliminated    = "#DCDCDC"   -- বাদ
   local colours_notPossible   = "#DCDCDC"   -- টেকনিক্যালি সম্ভব নয় (only used for some playoff matches with knockoutType=2)
   
   -- The CSS classes applied to the cells of each result
   local classes_win       = "yes table-yes2"
   local classes_loss      = "no table-no2"
   local classes_noResult  = "noresult"
   --local classes_tie       = ""
   
   -- The output buffer
   local output = {}
   local outputIndex = 1
   function print(s)
       output[outputIndex] = s
       outputIndex = outputIndex + 1
   end
   
   -- Construct the header
   print(strFormat([[
]], caption and '\n|+' .. caption or , matchesPerTeam)) for i = 1, matchesPerTeam do -- Generate the headers for each group match print(strFormat('! scope="col" style="width: 30px;%s" | %d\n', i == 1 and " border-left: 4px solid #454545" or "", i)) end local argCounter = 1 -- Generate the table for i = 1, #teams do local team = strTrim(teams[i]) print('\n|-\n! scope="row" style="text-align: left; padding-right: 10px" | ' .. team .. '\n') -- Add the team name local gs, ks = args[argCounter] or , args[argCounter + 1] or local j, comma, runningScore, lastMatch = 0, 0, 0, 0 argCounter = argCounter + 2 repeat j = j + 1 if j > matchesPerTeam then error(strFormat("Too many group stage matches. Expected %d (team: %s)", matchesPerTeam, team)) end local startPos = comma + 1 comma = strFind(gs, ',', startPos, true) or 0 print(j == 1 and '| style="border-left: 4px solid #454545; ' or '|| style="') local rpos = strFind(gs, '%S', startPos) if rpos and (rpos < comma or comma == 0) then local result, match = strUpper(strSub(gs, rpos, rpos)), tonumber(strMatch(strSub(gs, rpos + 1, comma - 1), '^(.-)%s*$')) -- Check that the match number is a valid non-negative integer greater than the preceding match number. if not match or match <= 0 or match % 1 ~= 0 then error(strFormat("Match number does not exist or is not a valid integer greater than 0 for group stage result #%d (team: %s)", j, team)) elseif match <= lastMatch then error(strFormat("Invalid match number: %d for group stage result #%d, must be greater than the preceding match number (%d) (team: %s)", match, j, lastMatch, team)) end lastMatch = match if result == 'W' then -- Win runningScore = runningScore + 2 print(strFormat('background-color: %s" class="%s" | %d ', colours_win, classes_win, matchReportArticle, match, runningScore)) elseif result == 'L' then -- Loss print(strFormat('background-color: %s" class="%s" | %d ', colours_loss, classes_loss, matchReportArticle, match, runningScore)) elseif result == 'N' then -- No result runningScore = runningScore + 1 print(strFormat('background-color: %s" class="%s" | %d ', colours_noResult, classes_noResult, matchReportArticle, match, runningScore)) --elseif result == 'T' then -- Tie -- runningScore = runningScore + 1 -- print(strFormat('background-color: %s" class="%s" | %d ', colours_tie, classes_tie, matchReportArticle, match, runningScore)) else error(strFormat("Invalid group stage result #%d: '%s', expecting 'W', 'L', 'N', or 'T' as first character (team: %s)", j, result, team)) end else -- Result not given print('" | ') end until comma == 0 if j ~= matchesPerTeam then -- Output empty cells for the remaining matches print(strRepeat('|| ', matchesPerTeam - j)) end j, comma = 0, 0 end -- Footer print(strFormat([[
দল গ্রুপ ম্যাচ
জয় হার ফলাফল হয়নি
  • টীকা: প্রতিটি গ্রুপ ম্যাচ শেষে মোট পয়েন্ট তালিকাভুক্ত করা হয়েছে।
  • টীকা: ম্যাচের সংক্ষিপ্তসার দেখতে পয়েন্ট (গ্রুপ ম্যাচ) বা জয়/হার (প্লে অফ) এ ক্লিক করুন।

]],

   classes_win, colours_win, classes_loss, colours_loss, classes_noResult, colours_noResult))
   
   return table.concat(output)
   

end

return _module