Zuletzt bearbeitet vor 11 Stunden
von Xineohp1506

Modul:Publikation/Buch: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
local smw = require('Module:SMW')
local smw = require('Module:SMW')
local getArgs = require('Module:Arguments').getArgs


local p = {}
local p = {}


function p.getVolumesAndRelated(seriesID)
function p.getVolumesAndRelated(frame)
    -- Argumente sicher extrahieren
    local args = getArgs(frame)
    local seriesID = args[1] -- Die SerienID sollte das erste Argument sein
 
    if not seriesID or seriesID == "" then
        return "SerienID wurde nicht angegeben."
    end
 
     -- Schritt 1: Seitentitel der Serie ermitteln
     -- Schritt 1: Seitentitel der Serie ermitteln
     local seriesTitle = smw.getFullPageTitle("[[SerienID::" .. seriesID .. "]]")
     local seriesTitle = smw.getFullPageTitle("[[SerienID::" .. seriesID .. "]]")

Version vom 21. November 2024, 13:52 Uhr

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 p = {}

function p.getVolumesAndRelated(frame)
    -- Argumente sicher extrahieren
    local args = getArgs(frame)
    local seriesID = args[1] -- Die SerienID sollte das erste Argument sein

    if not seriesID or seriesID == "" then
        return "SerienID wurde nicht angegeben."
    end

    -- Schritt 1: Seitentitel der Serie ermitteln
    local seriesTitle = smw.getFullPageTitle("[[SerienID::" .. seriesID .. "]]")
    if not seriesTitle then
        return "Keine Serie mit SerienID " .. seriesID .. " gefunden."
    end

    -- Schritt 2: Gesamtbände auslesen
    local completeVolumes = smw.ask("[[" .. seriesTitle .. "]]|?Complete volumes|limit=1")
    local totalVolumes = nil
    if completeVolumes then
        for _, data in pairs(completeVolumes) do
            totalVolumes = data["Complete volumes"]
        end
    end

    -- Schritt 3: Vorhandene Bände abrufen
    local relatedBooksQuery = "[[Hat Serie::" .. seriesTitle .. "]]|?Titel|?Band|limit=100"
    local relatedBooks = smw.ask(relatedBooksQuery)

    -- Schritt 4: Ergebnisse formatieren
    local output = "Band: " .. (totalVolumes and totalVolumes or "Unbekannt") .. "\n\n"
    output = output .. "Vorhandene Bände in der Bibliothek:\n"

    if relatedBooks then
        for title, data in pairs(relatedBooks) do
            output = output .. "* " .. (data["Band"] or "Unbekannter Band") .. ": [[" .. title .. "|" .. data["Titel"] .. "]]\n"
        end
    else
        output = output .. "Keine Bände in der Bibliothek gefunden."
    end

    return output
end

return p