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

Module:Feat: Difference between revisions

From Kronopolis and the Flat Plane
No edit summary
No edit summary
Line 11: Line 11:
         format='json'
         format='json'
     }
     }
     local json = mw.ext.externalData.getExternalData(payload)
     local json, errors = mw.ext.externalData.getExternalData(payload)
     mw.log('Payload:\n' .. util.dump(payload))
     mw.log('Payload:\n' .. util.dump(payload))
    mw.log('Errors:\n' .. util.dump(payload))
     mw.log('JSON:\n' .. util.dump(json))
     mw.log('JSON:\n' .. util.dump(json))
     if json ~= nil then
     if json ~= nil then

Revision as of 16:48, 18 October 2025

Documentation for this module may be created at Module:Feat/doc

local p = {}

local util = require('Module:Utility')

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

function p.list(frame)
    local out = {}
    local payload = {
        source=url .. '/api.php?action=query&format=json&list=categorymembers&cmlimit=max&cmtitle=Category:' .. util.firstToUpper(frame.args[1]) ..'_Feat',
        format='json'
    }
    local json, errors = mw.ext.externalData.getExternalData(payload)
    mw.log('Payload:\n' .. util.dump(payload))
    mw.log('Errors:\n' .. util.dump(payload))
    mw.log('JSON:\n' .. util.dump(json))
    if json ~= nil then
        for _,feat in ipairs(json) do
            if (feat['title'] ~= nil) then
                if (feat['title'] ~= frame.args['category']) and (string.find(feat['title'],'Category:') == nil) and (string.find(feat['title'],'feat/List') == nil) and (string.find(feat['title'],'-Level') == nil) then
                    table.insert(out, frame:preprocess('\n===' .. feat['title'] .. '===\n'))
                    table.insert(out, frame:expandTemplate({title='SmallLink', args = { feat['title'] } }))
                    table.insert(out, frame:expandTemplate({title=':' .. feat['title']}))
                    table.insert(out, frame:preprocess('\n----'))
                end
            end
        end
    end
    return table.concat(out)
end

return p