Zuletzt bearbeitet vor 2 Monaten
von Xineohp1506

Modul:LPON/EpisodeOutput: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 51: Zeile 51:
     end
     end


    -- TabberNeue-Ausgabe generieren
-- Wikitext direkt zurückgeben, um die Ausgabe zu prüfen
    local wikitextOutput = '<tabber>'
local wikitextOutput = '<tabber>'
    for tabName, episodes in pairs(tabGroups) do
for tabName, episodes in pairs(tabGroups) do
        wikitextOutput = wikitextOutput .. string.format(
    wikitextOutput = wikitextOutput .. string.format(
            "\n%s=\n{| class=\"lpnon-episode-table\"\n! # !! Titel !! Veröffentlichungsdatum !! Spieler\n%s\n|}\n|\n",
        "\n%s=\n{| class=\"lpnon-episode-table\"\n! # !! Titel !! Veröffentlichungsdatum !! Spieler\n%s\n|}\n|\n",
            tabName,
        tabName,
            table.concat(episodes, "\n")
        table.concat(episodes, "\n")
        )
    )
    end
end
    wikitextOutput = wikitextOutput .. '</tabber>'
wikitextOutput = wikitextOutput .. '</tabber>'
return wikitextOutput -- Gibt die Roh-Ausgabe zurück


     -- Wikitext verarbeiten
     -- Wikitext verarbeiten
     return frame:preprocess(wikitextOutput)
     --return frame:preprocess(wikitextOutput)
end
end


return episodeOutput
return episodeOutput

Version vom 18. Dezember 2024, 10:15 Uhr

Die Dokumentation für dieses Modul kann unter Modul:LPON/EpisodeOutput/Doku erstellt werden

local episodeOutput = {}
local helper = require('Module:LPON/Helper')

-- Funktion zur tabberbasierten Ausgabe der Folgen
function episodeOutput.inside(frame, cleanProjektname)
    if not mw.smw then
        return "Semantic MediaWiki-Erweiterung nicht gefunden."
    end

    if not cleanProjektname or cleanProjektname == "" then
        return "Kein Projekt angegeben."
    end

    -- Abfrage-String erstellen
    local query = string.format(
        "[[LPON:Projekt::%s]][[LPON:Typ::Episode]]|?LPON:Episodennummer|?LPON:Episodentitel|?LPON:Veröffentlichungsdatum|?LPON:Spieler",
        cleanProjektname
    )

    local queryResult = mw.smw.getQueryResult(query)

    if not queryResult or not queryResult.results then
        return "Keine Folgen für dieses Projekt gefunden."
    end

    -- Folgen nach Tabs aufteilen
    local tabGroups = {}
    for _, result in ipairs(queryResult.results) do
        local episodeNumber = result.printouts["LPON:Episodennummer"] and result.printouts["LPON:Episodennummer"][1] or 0
        local episodeTitle = result.printouts["LPON:Episodentitel"] and result.printouts["LPON:Episodentitel"][1] or "Ohne Titel"
        local releaseDate = result.printouts["LPON:Veröffentlichungsdatum"] and result.printouts["LPON:Veröffentlichungsdatum"][1] or "Unbekannt"
        local players = result.printouts["LPON:Spieler"] and table.concat(result.printouts["LPON:Spieler"], ", ") or "Unbekannt"

        -- Staffelnummer bestimmen (z. B. alle 20 Folgen eine neue Staffel)
        local season = math.floor((episodeNumber - 1) / 20) + 1
        local tabName = "Staffel " .. season

        if not tabGroups[tabName] then
            tabGroups[tabName] = {}
        end

        table.insert(tabGroups[tabName], string.format(
            '|-\n| %d || [[%s/Folge %d|%s]] || %s || %s',
            episodeNumber,
            cleanProjektname,
            episodeNumber,
            episodeTitle,
            releaseDate,
            players
        ))
    end

	-- Wikitext direkt zurückgeben, um die Ausgabe zu prüfen
	local wikitextOutput = '<tabber>'
	for tabName, episodes in pairs(tabGroups) do
	    wikitextOutput = wikitextOutput .. string.format(
	        "\n%s=\n{| class=\"lpnon-episode-table\"\n! # !! Titel !! Veröffentlichungsdatum !! Spieler\n%s\n|}\n|\n",
	        tabName,
	        table.concat(episodes, "\n")
	    )
	end
	wikitextOutput = wikitextOutput .. '</tabber>'
	
	return wikitextOutput -- Gibt die Roh-Ausgabe zurück

    -- Wikitext verarbeiten
    --return frame:preprocess(wikitextOutput)
end

return episodeOutput