Leaguepedia | League of Legends Esports Wiki
[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