Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:WDL
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(frame, played, won, drawn, lost, category) if played == '-' or played == 'β' then return 'β' elseif not played then if not won and not drawn and not lost then return '' end return frame:expandTemplate{title = 'Number table sorting', args = { (won or 0) + (drawn or 0) + (lost or 0) }} elseif tonumber(played) ~= (won or 0) + (drawn or 0) + (lost or 0) then return '<span class="error" style="font-size:100%"><abbr title="GP not equal to W + D + L">error</abbr>' .. (category or '') .. '</span>' else return frame:expandTemplate{title = 'Number table sorting', args = { played }} 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) 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 return displayWinPercent(frame, 100 * (won or 0) / (((won or 0) + (drawn or 0) + (lost or 0)) or 1), decimals) elseif tonumber(played) <= 0 then return '<span style="display:none">!</span>β' else return displayWinPercent(frame, 100 * (won or 0) / played, decimals) end 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 retval = tableprefix .. total(frame, args[1], args[2], args[3], args[4], args.demospace and '' or '[[Category:WDL error]]') .. '\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 return retval .. tableprefix .. pct(frame, args[1], args[2], args[3], args[4], args.decimals) 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)
Templates used on this page:
Template:Clc
(
edit
)
Template:Module other
(
edit
)
Template:Module rating
(
edit
)
Template:Ombox
(
edit
)
Template:Tl
(
edit
)
Module:Arguments
(
edit
)
Module:Message box
(
edit
)
Module:Message box/configuration
(
edit
)
Module:Message box/ombox.css
(
edit
)
Module:WDL/doc
(
edit
)
Module:Yesno
(
edit
)