[checked revision] | [checked revision] |
([ST] Entity -> p) |
([ST] init helper table) |
||
Line 4: | Line 4: | ||
local p = require('Module:FileEntityAbstract'):finalExtends() |
local p = require('Module:FileEntityAbstract'):finalExtends() |
||
+ | local h = {} |
||
p.objectType = 'Team' |
p.objectType = 'Team' |
Revision as of 08:11, 31 August 2020
Documentation for this module may be created at Module:TeamClass/doc
local util_args = require("Module:ArgsUtil")
local util_table = require("Module:TableUtil")
local util_vars = require("Module:VarsUtil")
local p = require('Module:FileEntityAbstract'):finalExtends()
local h = {}
p.objectType = 'Team'
p.cssClass = 'team-object'
p.defaultlength = 'link'
p.imagelength = 'link'
p.filePattern = '%slogo std.png'
p.squarePattern = '%slogo square.png'
p.imagesizes = { long = 60, medium = 48, short = 36 }
p.luaCachePrefix = 'teamnames_08_'
function p:init(str, settings)
if not str then
self.is_nil = true
return
end
local vars = self:getFromVariableOrCache(str:gsub('_', ' '))
if settings.suffix then
settings.link = settings.link or (settings.vars.link .. '/' .. settings.suffix)
else
settings.link = settings.link or settings.vars.link
end
if settings.short then
settings.vars.short = settings.short
end
settings.linked = not settings.vars.exception
self.vars = util_table.shallowClone(vars)
end
function p:getFromVariableOrCache(str)
local key = self.luaCachePrefix .. lang:lc(str)
return util_vars.getObject(key) or h.getFromCacheOrTeamnames(str, key)
end
function h.getFromCacheOrTeamnames(str, key)
local vars = cache.get(key) or h.getFromTeamnames(str, key)
if vars.exists == nil then
vars.exists = true
end
util_vars.setObject(key, vars)
return vars
end
function h.getFromTeamnames(str, key)
local vars_init = util_args.lookupVars(str, mw.loadData('Module:Teamnames'), true)
local vars
if vars_init then
vars = util_table.shallowClone(vars_init)
vars.file = vars.link or ''
vars.exception = util_args.nilToFalse(vars.exception)
vars.exists = true
else
vars = {
link = str,
long = str,
medium = str,
short = mw.ustring.upper(mw.ustring.sub(str:gsub('Team ',''), 1, 4)),
file = '',
exception = false,
exists = false,
}
end
cache.set(key, vars)
return vars
end
function p:square(opts)
if self.is_nil then return end
return self:_file(opts, nil, self.squarePattern)
end
return p