Zuletzt bearbeitet vor einem Tag
von Xineohp1506

SerieRelated

Version vom 19. November 2024, 22:25 Uhr von Xineohp1506 (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die Dokumentation für dieses Modul kann unter Modul:Publikation/SerieRelated/Doku erstellt werden

local serieRelated = {}

function serieRelated.getRelatedBooks(seriesTitle)
    -- Sicherstellen, dass seriesTitle ein String ist
    seriesTitle = type(seriesTitle) == "string" and mw.text.trim(seriesTitle) or ""

    if seriesTitle == "" then
        return "Kein Serienname angegeben."
    end

    local query = "[[Hat Serie::" .. seriesTitle .. "]]|?Titel|?Autor|?Band|limit=100"
    local result = mw.smw.getQueryResult(query)
    local booksList = ""

    -- Überprüfen, ob Ergebnisse vorliegen
    if result and result.results and next(result.results) then
        booksList = '<ul>'
        for page, data in pairs(result.results) do
            local band = data.properties["Band"] and data.properties["Band"][1] or "Unbekannt"
            local titel = data.properties["Titel"] and data.properties["Titel"][1] or page
            booksList = booksList .. '<li>[[ ' .. page .. ' | Band ' .. band .. ': ' .. titel .. ']]</li>'
        end
        booksList = booksList .. '</ul>'
    else
        booksList = "Keine Bücher gefunden."
    end

    return booksList
end

return serieRelated