Module:Modules: Difference between revisions

Current answers. Practical procedures. Reliable reference.
Jump to navigation Jump to search
Created page with "local p = {} local INDEX_PAGE = 'Module:Data/Modules/index' local function loadIndex() return mw.loadJsonData(INDEX_PAGE) end function p.testIndex(frame) local data = loadIndex() if not data.modules then return '<strong class="error">Module index loaded, but no "modules" object was found.</strong>' end local module = data.modules.frame_shift_drive if not module then return '<strong class="error">Module index loaded, but "fram..."
 
No edit summary
Line 5: Line 5:
local function loadIndex()
local function loadIndex()
     return mw.loadJsonData(INDEX_PAGE)
     return mw.loadJsonData(INDEX_PAGE)
end
local function loadModule(key)
    local index = loadIndex()
    if not index.modules then
        return nil, 'Module index does not contain a "modules" object.'
    end
    local entry = index.modules[key]
    if not entry then
        return nil, 'Module "' .. tostring(key) .. '" was not found in the module index.'
    end
    if not entry.data_page then
        return nil, 'Module "' .. tostring(key) .. '" does not have a data_page defined.'
    end
    return mw.loadJsonData(entry.data_page)
end
end


Line 25: Line 45:
         module.name,
         module.name,
         module.group
         module.group
    )
end
function p.testModule(frame)
    local data, err = loadModule('frame_shift_drive')
    if not data then
        return '<strong class="error">' .. err .. '</strong>'
    end
    return string.format(
        'Detailed module data loaded successfully: [[%s|%s]] — %s — %d classes — %d ratings',
        data.page,
        data.name,
        data.group,
        #(data.classes or {}),
        #(data.ratings or {})
     )
     )
end
end


return p
return p

Revision as of 02:04, 23 August 2026

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

local p = {}

local INDEX_PAGE = 'Module:Data/Modules/index'

local function loadIndex()
    return mw.loadJsonData(INDEX_PAGE)
end

local function loadModule(key)
    local index = loadIndex()

    if not index.modules then
        return nil, 'Module index does not contain a "modules" object.'
    end

    local entry = index.modules[key]

    if not entry then
        return nil, 'Module "' .. tostring(key) .. '" was not found in the module index.'
    end

    if not entry.data_page then
        return nil, 'Module "' .. tostring(key) .. '" does not have a data_page defined.'
    end

    return mw.loadJsonData(entry.data_page)
end

function p.testIndex(frame)
    local data = loadIndex()

    if not data.modules then
        return '<strong class="error">Module index loaded, but no "modules" object was found.</strong>'
    end

    local module = data.modules.frame_shift_drive

    if not module then
        return '<strong class="error">Module index loaded, but "frame_shift_drive" was not found.</strong>'
    end

    return string.format(
        'Module database connected successfully: [[%s|%s]] — %s',
        module.page,
        module.name,
        module.group
    )
end

function p.testModule(frame)
    local data, err = loadModule('frame_shift_drive')

    if not data then
        return '<strong class="error">' .. err .. '</strong>'
    end

    return string.format(
        'Detailed module data loaded successfully: [[%s|%s]] — %s — %d classes — %d ratings',
        data.page,
        data.name,
        data.group,
        #(data.classes or {}),
        #(data.ratings or {})
    )
end

return p