Home
Random
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:WDL/sandbox
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
require('strict') local getArgs = require('Module:Arguments').getArgs local roundAndPad = require('Module:Math')._precision_format local p = {} local function total(won, drawn, lost) if not won and not drawn and not lost then return '' else return (won or 0) + (drawn or 0) + (lost or 0) end end local function displayWinPercent(frame, winPercent, decimals) local retval = '' if winPercent < 10 then retval = '<span style="visibility:hidden;color:transparent;">00</span>' elseif winPercent < 100 then retval = '<span style="visibility:hidden;color:transparent;">0</span>' end return retval .. frame:expandTemplate{title = 'Number table sorting', args = { roundAndPad(winPercent, decimals or 2) }} end local function pct(frame, played, won, drawn, lost, decimals, winpctdraw) if played == '-' or played == 'β' then return 'β' elseif not played then if not won and not drawn and not lost then return '' elseif (won or 0) + (drawn or 0) + (lost or 0) <= 0 then return '<span style="display:none">!</span>β' end played = (won or 0) + (drawn or 0) + (lost or 0) elseif tonumber(played) <= 0 then return '<span style="display:none">!</span>β' end local wins = (won or 0) local draws = tonumber(drawn) or 0 local games = played if draws > 0 then if winpctdraw == 'ignore'then -- treat ignored draws like the game was never played games = games - draws elseif winpctdraw == 'loss' then -- don't have to do anything - this was the previous behavior else -- default to 'half' wins = wins + (draws / 2) end end return displayWinPercent(frame, 100 * wins / games, decimals) end function p.main(frame, otherargs) local args = otherargs or getArgs(frame) local tableprefix = string.format('| style="%stext-align:%s" |', args.total and 'font-weight:bold;background:#efefef;' or '', args.align or 'center') local played = total(args[2], args[3], args[4]) local retval = tableprefix .. frame:expandTemplate{title = 'Number table sorting', args = { played }} .. '\n' retval = retval .. tableprefix .. frame:expandTemplate{title = 'Number table sorting', args = { args[2] }} .. '\n' retval = retval .. tableprefix .. frame:expandTemplate{title = 'Number table sorting', args = { args[3] }} .. '\n' retval = retval .. tableprefix .. frame:expandTemplate{title = 'Number table sorting', args = { args[4] }} .. '\n' if args['for'] then retval = retval .. tableprefix .. frame:expandTemplate{title = 'Number table sorting', args = { args['for'] }} .. '\n' end if args.against then retval = retval .. tableprefix .. frame:expandTemplate{title = 'Number table sorting', args = { args.against }} .. '\n' end if args.diff == 'yes' then if tonumber(args['for']) and tonumber(args.against) then retval = retval .. tableprefix .. string.format('%s%d\n', tonumber(args['for']) < tonumber(args.against) and 'β' or '+', math.abs(args['for'] - args.against)) else retval = retval .. tableprefix .. '<span style="display:none">!</span>β\n' end end if args.winpctdraw then retval = retval .. tableprefix .. frame:expandTemplate{title = 'Number table sorting', args = { args.winpctdraw }} .. '\n' end return retval .. tableprefix .. pct(frame, played, args[2], args[3], args[4], args.decimals, args.winpctdraw) end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:WDL/sandbox/doc
(
edit
)