Module:Lua banner: Difference between revisions

    (Putting that logic in the correct place)
    (Applying protection level tracking logic to modules too)
    Line 72: Line 72:
    testcases = true
    testcases = true
    }
    }
    if titleObj.namespace == 10
    if not subpageBlacklist[titleObj.subpageText] then
    and not subpageBlacklist[titleObj.subpageText]
    local protCatName
    then
    if titleObj.namespace == 10 then
    local category = args.category
    local category = args.category
    if not category then
    if not category then
    local categories = {
    local categories = {
    ['Module:String'] = 'Lua String-based templates',
    ['Module:String'] = 'Lua String-based templates',
    ['Module:Math'] = 'Templates based on the Math Lua module',
    ['Module:Math'] = 'Templates based on the Math Lua module',
    ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
    ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
    ['Module:Citation'] = 'Lua-based citation templates'
    ['Module:Citation'] = 'Lua-based citation templates'
    }
    }
    categories['Module:Citation/CS1'] = categories['Module:Citation']
    categories['Module:Citation/CS1'] = categories['Module:Citation']
    category = modules[1] and categories[modules[1]]
    category = modules[1] and categories[modules[1]]
    category = category or 'Lua-based templates'
    category = category or 'Lua-based templates'
    end
    cats[#cats + 1] = category
    protCatName = "Templates using under-protected Lua modules"
    elseif titleObj.namespace == 828 then
    protCatName = "Modules depending on under-protected modules"
    end
    end
    cats[#cats + 1] = category
    if not args.noprotcat and protCatName then
    if not args.noprotcat then
    local protLevels = {
    local protLevels = {
    autoconfirmed = 1,
    autoconfirmed = 1,
    Line 102: Line 106:
    if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
    if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
    for i, module in ipairs(modules) do
    for i, module in ipairs(modules) do
    local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
    if module ~= "WP:libraryUtil" then
    if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
    local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
    if moduleProt < currentProt then
    if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
    cats[#cats + 1] = "Templates using under-protected Lua modules"
    if moduleProt < currentProt then
    break
    cats[#cats + 1] = protCatName
    break
    end
    end
    end
    end
    end