Documentation for this module may be created at Module:TeamResults/doc
local p = {}
function p.teamResults( frame )
if frame == mw.getCurrentFrame() then
args = require( 'Module:ProcessArgs').norm()
else
frame = mw.getCurrentFrame()
end
local team = args[1] or tostring(mw.title.getCurrentTitle())
local tournamentType = args.type or ''
local limit = args[3] or 5000
local placement = mw.loadData('Module:Placementnames')
local m_team = require('Module:Team')
local League = require('Module:League').league
-- local Game = require('Module:Game').game
local tbl = mw.html.create('table')
local teamlink = m_team.teamlinkname(team)
local earnings = {}
tbl:addClass("wikitable sortable"):css("font-size","90%")
:tag("tr")
:tag("th"):css({ background = "#E6E6E6", border = "1px solid black" }):attr("colspan","30")
:wikitext('Recent Tournament Results [[' .. teamlink .. '/Results|(View All)]]'):done()
:done()
:tag("tr")
-- :tag("th"):css("width","60"):wikitext("Game"):done()
:tag("th"):css("width","60"):wikitext("Date"):done()
:tag("th"):css("width","60"):wikitext("Place"):done()
:tag("th"):css("width","80"):wikitext("Prize"):done()
:tag("th"):css("width","250"):wikitext("Event"):done()
--:tag("th"):css("width","150"):wikitext("Last Result"):done()
:tag("th"):wikitext("Roster"):done()
:done()
local result = p.load(teamlink, tournamentType, limit)
for _,row in ipairs(result) do
place = placement[string.lower(row["Place"])] or { bgcolor = "", hiddensort = "", fontcolor = "red", display = "Invalid Placement Name[[Category:Pages With Invalid Placement Names]]" }
tr = tbl:tag("tr")
-- tr:tag('td'):wikitext(Game{row['Game']}):done()
tr:tag("td"):wikitext(row["Date"]):done() -- Need to format this right still
:tag("td")
:css({ ["background-color"] = "#" .. place["bgcolor"], color = place["fontcolor"], ["text-align"] = "center" })
:wikitext('<span style="display:none;">' .. place.hiddensort .. "</span>'''" .. place.display .. "'''")
:done()
:tag("td"):wikitext(row["PrizeMarkup"]):done()
tdEvent = tr:tag("td"):wikitext(League{row["League"],"onlyimage"} .. " [[" .. row["EventLink"] .. "|" .. row["Event"])
if row["Phase"] ~= "" then
tdEvent:wikitext(" - " .. row["Phase"])
end
tdEvent:wikitext("]]"):done()
tr:tag("td"):wikitext(row.Roster)
if row["Prize"] ~= "" then
earnings[row["PrizeUnit"]] = (earnings[row["PrizeUnit"]] or 0) + tonumber(row["Prize"],10)
end
tr:done()
end
td = tbl:tag("tr")
:tag("th"):attr("colspan","30"):wikitext("Total Prize: ")
local earningstable = {}
for currency, amount in pairs(earnings) do
earningstable[#earningstable+1] = currency .. " " .. mw.getLanguage('en'):formatNum(amount)
end
td:wikitext(table.concat(earningstable," • ")):done()
text = tostring(tbl)
return text
end
function p.shortList(frame)
if frame == mw.getCurrentFrame() then
args = require( 'Module:ProcessArgs').norm()
else
frame = mw.getCurrentFrame()
end
local team = args[1] or tostring(mw.title.getCurrentTitle())
local tournamentType = args[2] or 'Offline'
local limit = args[3] or 5
local placement = mw.loadData('Module:Placementnames')
local m_team = require('Module:Team')
local League = require('Module:League').league
-- local Game = require('Module:Game').game
local teamlink = m_team.teamlinkname(team)
local tbl = mw.html.create('table')
local m_team = require('Module:Team')
tbl:addClass("wikitable sortable"):css("font-size","90%")
:tag("tr")
:tag("th"):css({ background = "#E6E6E6", border = "1px solid black" }):attr("colspan","30")
:wikitext('Recent Tournament Results [[' .. teamlink .. '/Results|(View All)]]'):done()
:done()
:tag("tr")
-- :tag("th"):css("width","60"):wikitext("Game"):done()
:tag("th"):css("width","60"):wikitext("Date"):done()
:tag("th"):css("width","60"):wikitext("Place"):done()
:tag("th"):css("width","80"):wikitext("Prize"):done()
:tag("th"):css("width","250"):wikitext("Event"):done()
--:tag("th"):css("width","150"):wikitext("Last Result"):done()
:tag("th"):wikitext("Roster"):done()
:done()
local result = p.load(teamlink, tournamentType, limit)
for _,row in ipairs(result) do
place = placement[string.lower(row["Place"])] or { bgcolor = "", hiddensort = "", fontcolor = "red", display = "Invalid Placement Name[[Category:Pages With Invalid Placement Names]]" }
tr = tbl:tag("tr")
-- tr:tag('td'):wikitext(Game{row['Game']}):done()
tr:tag("td"):wikitext(row["Date"]):done() -- Need to format this right still
:tag("td")
:css({ ["background-color"] = "#" .. place["bgcolor"], color = place["fontcolor"], ["text-align"] = "center" })
:wikitext('<span style="display:none;">' .. place.hiddensort .. "</span>'''" .. place.display .. "'''")
:done()
:tag("td"):wikitext(row["PrizeMarkup"]):done()
tdEvent = tr:tag("td"):wikitext(League{row["League"],"onlyimage"} .. " [[" .. row["EventLink"] .. "|" .. row["Event"])
if row["Phase"] ~= "" then
tdEvent:wikitext(" - " .. row["Phase"])
end
tdEvent:wikitext("]]"):done()
tr:tag("td"):wikitext(row.Roster)
tr:done()
end
text = tostring(tbl)
return text
end
function p.load(teamlink, tournamentType, limit)
local fieldstable = {
"TournamentResults.TeamLink=TeamLink",
"TournamentResults.Prize_Markup=PrizeMarkup",
"TournamentResults.PrizeOther=PrizeOther",
"TournamentResults.Prize=Prize",
"TournamentResults.PrizeUnit=PrizeUnit",
"TournamentResults.Date=Date",
"TournamentResults.Place=Place",
"TournamentResults.Event=Event",
"TournamentResults.Phase=Phase",
"CONCAT(TournamentResults._pageName)=EventLink",
--"TournamentRosters.RosterLinks__full=RosterLinks",
--"TournamentRosters.Roster=RosterNames",
'TournamentRosters.Roster_Linked=Roster',
"TournamentRosters.Roles_Markup=Roles",
"TournamentResults.LastResult=LastResult",
"TournamentResults.LastOpponent_Markup=LastOpponent",
-- 'InfoboxTournament.Game=Game',
"InfoboxTournament.League=League",
}
local cargotables = "TournamentRosters, TournamentResults, InfoboxTournament"
local cargojoin = "TournamentResults.RosterPage = TournamentRosters._pageName, TournamentResults._pageName=InfoboxTournament._pageName"
local cargofields = table.concat(fieldstable,",")
local cargowhere = 'TournamentResults.TeamLink="' .. teamlink .. '" AND (TournamentRosters.TeamLink = TournamentResults.TeamLink)'
local cargogroupBy = "TournamentResults.UniqueLine"
local cargoorderBy = "TournamentResults.Date desc"
if tournamentType and tournamentType ~= '' then
cargowhere = cargowhere .. ' AND InfoboxTournament.Type = "' .. tournamentType .. '" '
end
if not limit then
limit = 5000
end
local cargoquery = { where = cargowhere, join = cargojoin, groupBy = cargogroupBy, orderBy = cargoorderBy, limit=limit }
local result = mw.ext.cargo.query(cargotables, cargofields, cargoquery)
return result
end
return p