Dink E-sports

local util\_args = require('Module:ArgsUtil')
local LOOKUP = mw.loadData('Module:Teamnames')
local lang = mw.getLanguage('en')
local SIZES = {
 short = 38,
 medium = 45,
 long = 60,
 square = 123
}

local h = {}

function h.getInfo(str, settings)
 if str ==  *or not str then str = 'TBD' end*
 settings.vars = util\_args.lookupVars(str, LOOKUP, true)
 if settings.vars then
 settings.file = settings.vars.link
 else
 settings.vars = { link = str, long = str, medium = str }
 if settings.short then
 settings.vars.short = settings.short
 else
 -- if we don't have actual variables defined for this team then
 -- other than 'Team ', the shortname will be the first 4 characters of the long name
 settings.vars.short = lang:uc(str:gsub('Team ',*):sub(1, 4))*
 end
 settings.file =
 end
 if settings.suffix then
 settings.link = settings.vars.link .. '/' .. settings.suffix
 else
 settings.link = settings.vars.link
 end
 settings.linked = not settings.vars.exception
 return
end

function h.linkedDisplay(linked, link, display)
 if not linked then
 return display
 else
 return ('%s'):format(link, display)
 end
end

function h.right(settings, size)
 return ('%spx %s'):format(
 settings.file,
 settings.size or SIZES[size],
 settings.linked and settings.link or *,*
 settings.vars[size]
 )
end

function h.rightlinked(settings, size)
 return ('%spx %s'):format(
 settings.file,
 settings.size or SIZES[size],
 settings.linked and settings.link or *,*
 h.linkedDisplay(settings.linked, settings.link, settings.vars[size])
 )
end

function h.left(settings, size)
 return ('%s %spx'):format(
 settings.vars[size],
 settings.file,
 settings.size or SIZES[size],
 settings.linked and settings.link or
 )
end

function h.leftlinked(settings, size)
 return ('%s %spx'):format(
 h.linkedDisplay(settings.linked, settings.link, settings.vars[size]),
 settings.file,
 settings.size or SIZES[size],
 settings.linked and settings.link or
 )
end

local p = {}
function p.main(frame)
 -- this should NEVER be called from Lua, only invoked from MW
 local args = util\_args.merge(true)
 if not args[1] then
 return
 end
 local style = args[2] or 'rightlonglinked'
 args.size = args.size and args.size:gsub('px',*)*
 return p[style](args[1], args)
end

function p.teamlinkname(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return settings.link
end

function p.teammediumname(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return settings.vars.medium
end

function p.teamname(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return settings.vars.long
end

function p.short(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return settings.vars.short
end

function p.onlyimage(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return ('%spx'):format(
 settings.file,
 settings.size or SIZES.long
 )
end

function p.onlyimagelinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return ('%spx'):format(
 settings.file,
 settings.size or SIZES.long,
 settings.linked and settings.link or
 )
end

function p.square(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return ('%spx'):format(
 settings.file,
 settings.size or SIZES.square
 )
end

function p.squarelinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return ('%spx'):format(
 settings.file,
 settings.size or SIZES.square,
 settings.linked and settings.link or
 )
end

function p.mediumplainlinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.linkedDisplay(settings.linked, settings.link, settings.vars.medium)
end

function p.plainlinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.linkedDisplay(settings.linked, settings.link, settings.vars.long)
end

function p.rightshort(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.right(settings, 'short')
end

function p.rightmedium(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.right(settings, 'medium')
end

function p.rightlong(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.right(settings, 'long')
end

function p.rightshortlinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.rightlinked(settings, 'short')
end

function p.rightmediumlinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.rightlinked(settings, 'medium')
end

function p.rightlonglinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.rightlinked(settings, 'long')
end

function p.leftshort(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.left(settings, 'short')
end

function p.leftmedium(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.left(settings, 'medium')
end

function p.leftlong(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.left(settings, 'long')
end

function p.leftshortlinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.leftlinked(settings, 'short')
end

function p.leftmediumlinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.leftlinked(settings, 'medium')
end

function p.leftlonglinked(str, settings)
 if not settings then settings = {} end
 h.getInfo(str, settings)
 return h.leftlinked(settings, 'long')
end

function p.table(str, settings)
 return settings.vars
end

return p