Module:Indicator datasets table

From Visual Data Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:Indicator datasets table/doc

local p = {}

function p.getDatasets(frame)
    -- Extrahiere die articleids aus dem frame
    local articleids = frame.args.articleids
    -- Überprüfe, ob articleids vorhanden sind
    if not articleids then
        return "Error: articleids not provided"
    end
    -- Teile die articleids anhand des Kommas auf
    local ids = mw.text.split(articleids, ",")
    local dates = {}
    -- Durchlaufe jede id und suche die entsprechende Seite
    for _, id in ipairs(ids) do
        -- Konstruiere den Seitentitel
        local pageTitle = "Entry:Datasets/Dataset " .. id
        -- Versuche, die Seite zu laden
        local page = mw.title.new(pageTitle)
        if page and page.exists then
            -- Holen Sie sich den Inhalt der Seite und analysieren Sie ihn als JSON
            local content = page:getContent()
            local jsonData = mw.text.jsonDecode(content)
            -- Überprüfe, ob das Datum im JSON-Datenobjekt vorhanden ist
            if jsonData and jsonData.date then
                -- Füge das Datum der Ergebnisliste hinzu
                table.insert(dates, jsonData.date)
            else
                -- Wenn das Datum nicht gefunden wurde, füge eine Fehlermeldung hinzu
                table.insert(dates, "Error: Datum nicht gefunden für ID " .. id)
            end
        else
            -- Wenn die Seite nicht gefunden wurde, füge eine Fehlermeldung hinzu
            table.insert(dates, "Error: Seite nicht gefunden für ID " .. id)
        end
    end
    -- Gib die Ergebnisse zurück, getrennt durch ein Komma
    return table.concat(dates, ", ")
end

return p