Module:Lua json

From Visual Data Wiki
Jump to navigation Jump to search

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

local p = {}
local json = require("Module:Json")

-- Funktion zum Durchsuchen der Seiten nach dem angegebenen Titelwert
function p.getDataByTitle(titleParam, titleValue, targetParam)
    local pages = mw.title.new('Special:PrefixIndex/Data:' .. titleValue)

    -- Überprüfen, ob die Seiten existieren und durchsuchbar sind
    if pages and pages.exists then
        local results = {}

        -- Iteration über die Seiten
        for _, page in ipairs(mw.ext.pageinfo.getPagesInCategory(pages.prefixedText)) do
            local content = mw.title.new(page.fullText)
            
            -- Überprüfen, ob die Seite existiert und das Content-Model JSON ist
            if content and content.exists and content.contentModel == "json" then
                local data = mw.text.jsonDecode(content:getContent())
                
                -- Überprüfen, ob der angegebene Parameter existiert und den richtigen Wert hat
                if data and data[titleParam] == titleValue then
                    table.insert(results, data[targetParam])
                end
            end
        end

        -- Rückgabe der Ergebnisse
        return results
    else
        -- Wenn die Seiten nicht existieren oder nicht durchsuchbar sind, wird ein Fehler ausgegeben
        return "Error: Unable to find pages with the given prefix"
    end
end

return p