来自柯南百科

可在Module:沙盒/doc创建此模块的帮助文档

local p = {}

function p.getStaff(frame)
    local args = frame.args
    local data = mw.loadJsonData("Module:沙盒/test.json")
    
    if args[1] and string.sub(args[1], 1, 2) == "TV" then
        -- 根据集数参数返回职位和姓名的wikitext表格
        local episode = args[1]
        local staffData = data[episode]
        
        if staffData then
            local output = '{| class="wikitable"\n|-\n! 职位\n! 姓名\n'
            
            for position, nameList in pairs(staffData) do
                local names = ''
                for _, nameItem in ipairs(nameList) do
                    names = names .. nameItem .. '、'
                end
                names = string.sub(names, 1, -4)
                output = output .. '|-\n! ' .. position .. '\n| ' .. names .. '\n'
            end
            
            output = output .. '|}'
            return output
        else
            return "未找到该集数的信息。"
        end
    elseif args[1] then
        -- 根据姓名参数返回集数和职位的wikitext表格
        local name = args[1]
        local output = '{| class="wikitable"\n|-\n! 集数\n! 职位\n'
        
        for episode, staffData in pairs(data) do
            for position, nameList in pairs(staffData) do
                for _, nameItem in ipairs(nameList) do
                    if nameItem == name then
                        output = output .. '|-\n| ' .. episode .. '\n| ' .. position .. '\n'
                    end
                end
            end
        end
        
        output = output .. '|}'
        
        if output == '{| class="wikitable"\n|-\n! 集数\n! 职位\n|}' then
            return "未找到该姓名的信息。"
        else
            return output
        end
    else
        return "请输入集数或姓名参数。"
    end
end

return p