Zuletzt bearbeitet vor 4 Wochen
von Xineohp1506

Episode

Die Dokumentation für dieses Modul kann unter Modul:Studio/Episode/Doku erstellt werden

local p = {}
local getArgs = require('Module:Arguments').getArgs
local helper = require('Module:Studio/Helper')

function p.render(frame)
	local args = getArgs(frame)
	local output = {}

    local cleanProjektname = helper.cleanString(args["Projekt"])
	local displayTitle = "#"..args["Nummer"].." "..args["Titel"]
	helper.setDisplayTitle({title = displayTitle})
	
	local wikitextLink
	if args["Service"] and args["ID"] then
		local videoLink = helper.getVideoLink(args["Service"], args["ID"])
		if videoLink and videoLink ~= "" then
			wikitextLink = "[" .. videoLink .. " " .. args["Service"]:gsub("^%l", string.upper) .. "]"
		end
	end
	
	-- SEMANTISCHE DATEN SPEICHERN
	helper.setIfExists("STUDIO:Nummer", args["Nummer"])
	helper.setIfExists("STUDIO:Datum", args["Datum"])
	helper.setIfExists("LPON:Projekt", args["Projekt"])
	helper.setIfExists("STUDIO:Dateiname", args["Dateiname"])
	helper.setIfExists("STUDIO:Online", args["Online"])
	helper.setIfExists("STUDIO:CUTADDS", args["CUTADDS"])
	helper.setIfExists("STUDIO:Notizen", args["Notizen"])
	helper.setIfExists("STUDIO:Laenge", args["Laenge"])
	helper.setIfExists("STUDIO:Service", args["Service"])
	helper.setIfExists("STUDIO:ID", args["ID"])
	helper.setIfExists("STUDIO:Playlist", args["Playlist"])
	helper.setIfExists("STUDIO:Tags", args["Tags"])
	helper.setIfExists("STUDIO:KategorieIntern", args["KategorieIntern"])
	helper.setIfExists("STUDIO:Geschnitten", args["Geschnitten"])
	helper.setIfExists("STUDIO:Uploaded", args["Uploaded"])
	helper.setIfExists("STUDIO:Typ", "Episode")
	helper.setIfExists("STUDIO:Titel", args["Titel"])
	
	local html = mw.html.create("table"):addClass("studio-episode-table")

	-- Zeile 1: Kopfzeile
	html:tag("tr")
		:tag("td")
			:attr("colspan", "3")
			:addClass("studio-header-cell")
			:wikitext(
				helper.getIcon("film") .. " " .. displayTitle .. "   " ..
				helper.getIcon("calendar") .. " " .. (args["Datum"] or "-") .. "   " ..
				helper.getIcon("link") .. " [[LetsPlayOrNot:"..cleanProjektname.."|" .. (args["Projekt"] or "-") .. "]]"
			)

	-- Zeile 2: Video
	if args["Service"] and args["ID"] and (args["Online"] == "ja" or (args["Online"] and args["Online"] ~= "")) then
		local embed = '{{#ev:' .. args["Service"] .. '|' .. args["ID"] .. '||center||||autoresize}}'
		html:tag("tr")
			:tag("td")
				:attr("colspan", "3")
				:addClass("studio-video-cell")
				:wikitext(frame:preprocess(embed))
	end

	-- Zeile 3: Geschnitten / Hochgeladen
	html:tag("tr")
		:tag("td")
			:wikitext(helper.getIcon("scissors") .. "'''Geschnitten:''' " .. (args["Geschnitten"] or "-"))
			:done()
		:tag("td")
			:wikitext(helper.getIcon("upload") .. "'''Hochgeladen:''' " .. (args["Uploaded"] or "-"))
			:done()
		:tag("td")
			:wikitext(helper.getIcon("globe") .. "'''Online:''' " .. (args["Online"] or "-"))
			
	-- Zeile 4: Länge / Playlist
	html:tag("tr")
		:tag("td")
			:wikitext(helper.getIcon("clock") .. "'''Länge:''' " .. (args["Laenge"] or "-"))
			:done()
		:tag("td")
			:wikitext(helper.getIcon("floppy-disk") .. " " .. (args["Dateiname"] or "-"))
			:done()
		:tag("td")
			:wikitext(helper.getIcon("link") .. "'''Link:''' " .. (wikitextLink or "-"))

	-- Zeile 5: CUT_ADDS
	html:tag("tr")
		:tag("td")
			:attr("colspan", "3")
			:wikitext(helper.getIcon("video-slash") .. "'''Anmerkungen für den Schnitt:''' " .. (args["CUTADDS"] or "-"))

	-- Zeile 6: Notizen
	html:tag("tr")
		:tag("td")
			:attr("colspan", "3")
			:wikitext(helper.getIcon("pen") .. "'''Notizen:''' " .. (args["Notizen"] or "-"))

	-- Zeile 7: Kategorie intern / Tags
	html:tag("tr")
		:tag("td")
		    :attr("colspan", "2")
			:wikitext(helper.getIcon("folder") .. "'''Kategorie intern:''' " .. (args["KategorieIntern"] or "-"))
			:done()
		:tag("td")
			:wikitext(helper.getIcon("tags") .. "'''Tags:''' " .. (args["Tags"] or "-"))

	table.insert(output, tostring(html))

	-- Kategorien setzen
	do
		local categories = {}
	
		if args["Kategorie intern"] then
			table.insert(categories, "Studio:" .. helper.cleanString(args["KategorieIntern"]))
		end
	
		table.insert(categories, "Studio:"..helper.cleanString(args["KategorieIntern"])..":Episoden")
	
		table.insert(output, helper.addCategories{
			categories = categories,
			sortkey = args["Titel"] or args["Nummer"] or "-"
		})
	end

	return table.concat(output, "\n")
	
end
	
return p