Modul:Data/DE-096775621/1

aus Wikipedia, der freien Enzyklopädie
local p = {}
local currentVersion = 37
local tVer = {
	["1981-"] = 1,
	["1982-"] = 2,
	["1983-"] = 3,
	["1984-"] = 4,
	["1985-"] = 5,
	["1986-"] = 6,
	["1987-"] = 7,
	["1988-"] = 8,
	["1989-"] = 9,
	["1990-"] = 10,
	["1991-"] = 11,
	["1992-"] = 12,
	["1993-"] = 13,
	["1994-"] = 14,
	["1995-"] = 15,
	["1996-"] = 16,
	["1997-"] = 17,
	["1998-"] = 18,
	["1999-"] = 19,
	["2000-"] = 20,
	["2001-"] = 21,
	["2002-"] = 22,
	["2003-"] = 23,
	["2004-"] = 24,
	["2005-"] = 25,
	["2006-"] = 26,
	["2007-"] = 27,
	["2008-"] = 28,
	["2009-"] = 29,
	["2010-"] = 30,
	["2011-"] = 31,
	["2012-"] = 32,
	["2013-"] = 33,
	["2014-"] = 34,
	["2015-"] = 35,
	["2016-"] = 36,
	["2017-"] = 37,
}

function p.getData(tArgs)
	if type(tArgs) == type({}) then
		if not tonumber(tArgs.version) then
			tArgs.versionDate = tArgs.version
		end
		tArgs.version = tVer[tArgs.versionDate] or tonumber(tArgs.version) or tArgs.current and currentVersion
		if tArgs.version then
			local b, tSub = pcall(require, "Module:Data/DE-096775621/1/" .. tArgs.version)
			if type(tSub) == type({}) then
				if tSub.getData then
					return tSub.getData(tArgs)
				else
					tArgs.versionError = tArgs.versionError or "[[Module:Data/DE-096775621/1/" .. tArgs.version .."]].getData"
					return tArgs.versionError
				end
			else
				tArgs.versionError = tArgs.versionError or "[[Module:Data/DE-096775621/1/" .. tArgs.version .."]]"
				return tArgs.versionError
			end
		else
			local s = '{| class="wikitable"\n!versionDate\n!version\n'
			local t = {}
			for i, v in pairs(tVer) do
				t[#t + 1] = {v, i}
			end
			table.sort(t, function(t1, t2) return t1[1] < t2[1] or t1[1] == t2[1] and t1[2] < t2[2] end)
			for i, v in ipairs(t) do
				s = s .. "|-\n|" .. v[2] .. "\n|" .. v[1] .. "\n"
			end
			return s .. "|}"
		end
	else
		return '<span class="error">tArgs = {}</span>'
	end
end

function p.invokeData(frame)
	local t = {}
	t.version = frame.args[1] or frame.args["version"]
	t.key = frame.args[2] or frame.args["key"]
	t.field = frame.args[3] or frame.args["field"]
	for i, v in pairs(frame.args) do
		t[i] = t[i] or v
	end
	return p.getData(t)
end

return p