Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:List: Difference between revisions

From Kronopolis and the Flat Plane
mNo edit summary
m debug
Line 7: Line 7:
function p.category(frame)
function p.category(frame)
     local out = {}
     local out = {}
     if frame.args[1] ~= nil then
     local payload = {
        local payload = {
        source = url .. '/api.php?action=query&format=json&generator=categorymembers&gcmlimit=max&gcmtitle=Category:' .. util.firstToUpper(frame.args[1]),
            source = url .. '/api.php?action=query&format=json&generator=categorymembers&gcmlimit=max&gcmtitle=Category:' .. util.firstToUpper(frame.args[1]),
        format = 'json'
            format = 'json'
    }
        }
    header_depth = '=='
        header_depth = '=='
    if frame.args.header ~= nil then
        if frame.args.header ~= nil then
        for i=0,frame.args.header do
            for i=0,frame.args.header do
            header_depth = header_depth .. '='
                 header_depth = header_depth .. '='
        end
    end
    local data, errors = mw.ext.externalData.getExternalData(payload)
    mw.log('PAYLOAD:\n\n' .. util.dump(payload) .. '\n\n')
    mw.log('ERROR  :\n\n' .. util.dump(errors) .. '\n\n')
    mw.log('DATA  :\n\n' .. util.dump(data) .. '\n\n')
    for _,page in ipairs(data) do
        if (page['title'] ~= nil) then
            if (page['title'] ~= frame.args[1]) and (string.find(page['title'],'Category:') == nil) then
                 table.insert(out, frame:preprocess('\n'.. header_depth .. page['title'] .. header_depth .. '\n'))
                table.insert(out, frame:expandTemplate({title=':' .. page['title']}))
                table.insert(out, frame:expandTemplate({title='SmallLink', args = { page['title'] } }))
                table.insert(out, frame:preprocess('\n----'))
             end
             end
         end
         end
        local data, errors = mw.ext.externalData.getExternalData(payload)
     end  
        mw.log('PAYLOAD:\n\n' .. util.dump(payload) .. '\n\n')
        mw.log('ERROR  :\n\n' .. util.dump(errors) .. '\n\n')
        mw.log('DATA  :\n\n' .. util.dump(data) .. '\n\n')
        for _,page in ipairs(data) do
            if (page['title'] ~= nil) then
                if (page['title'] ~= frame.args[1]) and (string.find(page['title'],'Category:') == nil) then
                    table.insert(out, frame:preprocess('\n'.. header_depth .. page['title'] .. header_depth .. '\n'))
                    table.insert(out, frame:expandTemplate({title=':' .. page['title']}))
                    table.insert(out, frame:expandTemplate({title='SmallLink', args = { page['title'] } }))
                    table.insert(out, frame:preprocess('\n----'))
                end
            end
        end
     end
     return table.concat(out)
     return table.concat(out)
end
end


return p
return p

Revision as of 18:53, 18 October 2025


local p = {}

local util = require('Module:Utility')

local url = mw.site.server .. mw.site.scriptPath

function p.category(frame)
    local out = {}
    local payload = {
        source = url .. '/api.php?action=query&format=json&generator=categorymembers&gcmlimit=max&gcmtitle=Category:' .. util.firstToUpper(frame.args[1]),
        format = 'json'
    }
    header_depth = '=='
    if frame.args.header ~= nil then
        for i=0,frame.args.header do
            header_depth = header_depth .. '='
        end
    end
    local data, errors = mw.ext.externalData.getExternalData(payload)
    mw.log('PAYLOAD:\n\n' .. util.dump(payload) .. '\n\n')
    mw.log('ERROR  :\n\n' .. util.dump(errors) .. '\n\n')
    mw.log('DATA   :\n\n' .. util.dump(data) .. '\n\n')
    for _,page in ipairs(data) do
        if (page['title'] ~= nil) then
            if (page['title'] ~= frame.args[1]) and (string.find(page['title'],'Category:') == nil) then
                table.insert(out, frame:preprocess('\n'.. header_depth .. page['title'] .. header_depth .. '\n'))
                table.insert(out, frame:expandTemplate({title=':' .. page['title']}))
                table.insert(out, frame:expandTemplate({title='SmallLink', args = { page['title'] } }))
                table.insert(out, frame:preprocess('\n----'))
            end
        end
    end 
    return table.concat(out)
end

return p