跳转到内容

模組:Vgr/sandbox

维基百科,自由的百科全书

这是本页的一个历史版本,由風中的刀劍留言 | 贡献2015年9月10日 (四) 12:18编辑。这可能和当前版本存在着巨大的差异。

local labelList = {
	
	{'KR', '-{zh-cn:韩国; zh-tw:南韓;}-'};
	{'JP', '日本'};
	{'WW', '全球'};
	{'NA', '北美'};
	{'PAL', '[[PAL区|PAL]]'};
	{'EU', '欧洲'};
	{'AU', '澳-{}-洲'}; -- 兼容{{Vgrelease new}}的使用参数
	{'AUS', '澳-{}-洲'}; -- 兼容{{Vgrelease}}的使用参数
	{'CN', '[[中国大陆|大陆]]'};
	{'TWHK', '台港'};
	{'TW', '台湾'};
	{'HK', '香港'};
	{'SEA', '东南亚'};
	{'SG', '新加坡'};
	{'MY', '马来西亚'};
	{'INT', '[[国际版]]'};

}

local function getDate(a)
	a = a or '<span class="error">请检查输入</span>'
	local function conv( a )
		local month = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'}
		if string.len(a) <= 7 then
			return a
		end
		for i, v in ipairs(month) do
			if string.find(a, '^' .. v .. ' +%d%d%d%d') then
				return mw.language.new( 'zh' ):formatDate( 'Y年M', a, nil )
			end
		end
		return mw.language.new( 'zh' ):formatDate( 'Y年Mj日', a, nil )
	end 
 
	local _, ret = pcall( conv, a )
	if not _ then
		ret = a
	end

	return ret
end

local function getLabel( inp )
	local ret = inp
	
	for i, v in ipairs( labelList ) do
		
		if inp == v[1] then
			ret = v[2]
			break
		 end
	end
	
	return (ret and ret or '<span class="error">请检查输入</span>')
end

local function item( label, data )
	local ret 
	label = getLabel( label )
	data = getDate( data )
	
	if _style == '2' then
		ret = data .. '(' .. label .. ')'
	else
		ret = label .. ':' .. data
	end
	
	ret = '<li>' .. ret .. '</li>'
	
	return ret
end

local getArgs = require('Module:Arguments').getArgs
local p = {}
 
function p.main(frame)
	local args = getArgs(frame)
	_style = args.s
	
	return p._main(args)
end
 
function p._main(args)
	-- Main module code goes here.
	ret = ''

	for i, v in ipairs( labelList ) do
		if args[v[1]] then
			ret = ret .. item( v[1], args[v[1]] )
		end
	end
		
	for i = 1, math.huge, 2 do	
		if args[i] or args[i+1] then
			ret = ret .. item( args[i], args[i+1] )
		else
			break
		end
	end
	
	if ret ~= '' then
		ret = '<!-- Generated by {{Vgrelease}}. -->' .. -- 供[[Module:Infobox VG]]自动判别格式,请勿移除此HTML注释
			'<ul style="list-style: none none; line-height: inherit; margin: 0px;">' .. ret .. '</ul>'
	else
		ret = nil
	end
	
	return ret
end
 
return p