诚邀有MediaWiki开发维护经验的朋友和我们一起共建英雄联盟中文Wiki平台,期待你的加入! 甜咖啡(QQ:815798492)(微信:glf101012) 请备注来意,并附带您的GitHub/Gitee主页或作品链接。

模块:Profile-Icons/V1/getter

来自英雄联盟维基百科

可在模块:Profile-Icons/V1/getter/doc创建此模块的帮助文档

-- <pre>
local p = {}
-------------------------------------------
-- general loading and merging table stuff
-------------------------------------------
local function safeLoad(specifier)
	local ok, pkg = pcall(mw.loadData, specifier);
	if ok then
		return pkg;
	end
	return {};
end

--deep table merge
local function assign(target, source)
	for key, value in pairs(source) do
		if type(value) == "table" and type(target[key]) == "table" then
			assign(target[key], value);
		else
			target[key] = value;
		end
	end
	return target;
end

local function data(iconId)
	return assign(
		assign(
			{},
			safeLoad('Module:Profile-Icons/V1/icon/' .. iconId)
		),
		safeLoad('Module:Profile-Icons/V1/icon/' .. iconId .. '/meta')
	);
end

function p.data(iconId)
	return data(iconId)
end

--------------------
-- general data
--------------------
function p.title(iconId, _)
	return data(iconId)['title']	
end

function p.release(iconId, _)
	return data(iconId)['yearReleased']
end

function p.isLegacy(iconId, _)
	return data(iconId)['isLegacy']
end

function p.disabledRegions(iconId, _)
	return data(iconId)['disabledRegions']
end

function p.sets(iconId, _)
	local sets = {}
	local hash = {}
	for i, set in ipairs(data(iconId)['sets']) do
		sets[#sets+1] = set
		hash[set] = true
	end
	if data(iconId)['esportsTeam'] then --this label is not given consistently in riots data for no reason, which is why it is added here
		sets[#sets+1] = "Esports Teams"
	end
	return sets
end

function p.imageformat(iconId, _)
	return data(iconId)['image']['mime']:gsub('image/', '')
end

-----------------
-- esports stuff
-----------------
function p.esportsTeam(iconId, _)
	return data(iconId)['esportsTeam']
end

function p.esportsRegion(iconId, _)
	return data(iconId)['esportsRegion']
end

function p.esportsEvent(iconId, _)
	return data(iconId)['esportsEvent']
end


------------------
-- regional stuff
------------------
function p.descriptions(iconId, _)
	return data(iconId)['descriptions']
end
function p.description(iconId, region)
	return data(iconId)['descriptions'][region]['description']
end

function p.rarities(iconId, _)
	return data(iconId)['rarities']
end
function p.rarity(iconId, region)
	return data(iconId)['rarities'][region]['rarity']
end

function p.availabilities(iconId, _)
	return data(iconId)['availability']
end
function p.availability(iconId, region)
	return data(iconId)['availability'][region]
end

function p.sources(iconId, _)
	return data(iconId)['source']
end
function p.source(iconId, region)
	return data(iconId)['source'][region]
end


return p
-- </pre>
-- [[Category:Lua]]