Zuletzt bearbeitet vor 5 Minuten
von Xineohp1506

Buch

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

local smw = require('Module:SMW')
local getArgs = require('Module:Arguments').getArgs

local buch = {}

-- Funktion zur Extraktion der Gesamtbände aus der Serien-ID
function buch.getCompleteVolumes(seriesID)
    if not mw.smw then
        return "Semantic MediaWiki-Erweiterung nicht gefunden."
    end

    if not seriesID or seriesID == "" then
        return "Keine Serien-ID angegeben."
    end

    -- **DEBUG** Serien-ID anzeigen
    mw.log("getCompleteVolumes aufgerufen mit Serien-ID: " .. seriesID)

    -- Abfrage vorbereiten
    local query = { ["[[SerienID::" .. seriesID .. "]]"] = "?Complete volumes" }
    mw.logObject(query, "Abfrage für getCompleteVolumes")

    -- Abfrage ausführen
    local queryResult = mw.smw.getQueryResult(query)
    if not queryResult or not queryResult.results then
        mw.log("Keine Ergebnisse gefunden für Serien-ID: " .. seriesID)
        return "Keine Ergebnisse gefunden."
    end

    -- Ergebnisse analysieren
    for _, result in pairs(queryResult.results) do
        mw.logObject(result, "Ergebnisse für Serien-ID: " .. seriesID)
        local printouts = result.printouts
        if printouts and printouts["Complete volumes"] then
            mw.log("Gesamtbände gefunden: " .. printouts["Complete volumes"][1])
            return printouts["Complete volumes"][1] -- Gibt den ersten gefundenen Wert zurück
        end
    end

    mw.log("Keine Gesamtbände gefunden für Serien-ID: " .. seriesID)
    return "Keine Gesamtbände gefunden."
end


-- Hauptfunktion für die Buchdarstellung
function buch.render(args, helper)
    local seriesID = args["Hat Serie"] or ""
    local band = args["Band"] or ""

    -- **DEBUG** Serien-ID anzeigen
    local debugOutput = "Serien-ID: " .. (seriesID ~= "" and seriesID or "Keine Serien-ID angegeben") .. "\n"

    -- **DEBUG** Prüfen, ob buch.getCompleteVolumes aufgerufen wird
    local completeVolumes = buch.getCompleteVolumes(seriesID)
    debugOutput = debugOutput .. "Aufruf getCompleteVolumes mit Serien-ID: " .. seriesID .. "\n"

    -- Ausgabe der Bände
    local bandOutput = "Band " .. band
    if completeVolumes and completeVolumes ~= "" then
        bandOutput = bandOutput .. " von " .. completeVolumes
    else
        bandOutput = bandOutput .. " (Keine Gesamtbände gefunden)"
    end

    -- Ergebnis zurückgeben
    return debugOutput .. "Ergebnis Band-Ausgabe: " .. bandOutput
end


return buch