模块:Class/convert

    来自中国珂学院
    ChthollyRoot(讨论 | 贡献)2020年3月1日 (日) 18:42的版本 (导入1个版本)
    (差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

    可在模块:Class/convert/doc创建此模块的帮助文档

    require('Module:No globals')
    
    local getArgs = require('Module:Arguments').getArgs
    local class = mw.loadData('Module:Class/data')
    
    local p = {}
    
    local function ret(args, i)
    	if args[2] == 'simp' then
    		return class[i].name
    	end
    	if args[2] == 'trad' then
    		return class[i].name2
    	end
    	return class[i].code
    end
    
    function p.main(frame)
    	local args = getArgs(frame, {frameOnly = true})
    	return p._main(args)
    end
    
    function p._main(args)
    	-- Main module code goes here.
    	local str = string.lower(args[1] or 'unassessed')
    
    	for i, v in pairs(class) do
    		if str == v.code then
    			return ret(args, i)
    		end
    		
    		if str == v.name or str == v.name .. '级' then
    			return ret(args, i)
    		end
    		
    		if str == v.name2 or str == v.name2 .. '級'  then
    			return ret(args, i)
    		end
    		
    		for j, w in ipairs(v.alias) do
    			if str == w then
    				return ret(args, i)
    			end
    		end
    	end
    	
    	return ret(args, 0)
    end
    
    return p