Modul:Turnierritter

Aus GaretienWiki
Zur Navigation springen Zur Suche springen
Dokumentation unter Modul:Turnierritter/Doku.
require("Modul:Hilfsfunktionen")

local p = {}

function holeRitterbuende()
	local buende=mw.smw.ask("[[Untergruppierung von::Ritterbünde]]"
		.."|?=#"
		.."|?Wappen ist#"
		.."|searchlabel="
		.."|limit=500"
	)
	if buende==nil then
		buende={}
	end
	local result={}
	for k,v in pairs(buende) do
		result[v[1]]=v['Wappen ist']
	end
	return result
end

function holeTurnierritter(query)
	local reiter=mw.smw.ask("[[Kategorie:Turnierritter]] "..query
		.."|?=Artikel"
		.."|?Alter"
		.."|?Turnierstatus"
		.."|?Turnierklasse"
		.."|?Turnierpublikum"
		.."|?Turnieranmerkung"
		.."|?Wappen ist#"
		.."|?Bild ist#"
		.."|?Sortierschlüssel"
		.."|?Mitglied von#"
		.."|searchlabel="
		.."|limit=500"
	)
	if reiter==nil then
		return {}
	end
	return reiter
end

function ausgabeBund(mitglied,buende)
	local m=mitglied
	if m==nil then m={} end
	if type(m)~='table' then m={m} end
	local w=''
	local a=''
	for mk,mv in pairs(m) do
		for bk,bv in pairs(buende) do
			if(mv==bk) then
				w=w..bv
				a=bk
			end
		end
	end
	if w=='' then return '' end
	return '<span style="display:none;">'..a..'</span>[['..w..'|50x50px|link=]]'
end

function ausgabe(spalte,buende)
	s='\n|-'
		..'\n|<span style="display:none;">'..robusttrim(spalte['Sortierschlüssel'])..'</span>[['..robusttrim(spalte['Wappen ist'])..'|50x50px|link=]]'
		..'\n|[['..robusttrim(spalte['Bild ist'])..'|50x50px|link=]]'
		..'\n|'..robusttrim(spalte['Artikel'])
		..'\n|'..robusttrim(spalte['Alter'])
		..'\n|'
	if spalte['Turnierstatus']~="unbekannt" then s=s..robusttrim(spalte['Turnierstatus']) end
	local sort=0
	if spalte['Turnierklasse']=='Neuling' then sort=1 end
	if spalte['Turnierklasse']=='Mittelmaß' then sort=2 end
	if spalte['Turnierklasse']=='Favorit' then sort=3 end
	if spalte['Turnierklasse']=='Legende' then sort=4 end
	s=s..'\n|<span style="display:none;">'..sort..'</span>'..robusttrim(spalte['Turnierklasse'])
		..'\n|'
	if spalte['Turnierpublikum']~="unbekannt" then s=s..robusttrim(spalte['Turnierpublikum']) end
	s=s..'\n|'..robusttrim(spalte['Turnieranmerkung'])
	s=s..'\n|'..ausgabeBund(spalte['Mitglied von'],buende)
	return s
end

function p.turnierritter(frame)
	local query=robusttrim(frame.args[1])
	local buende=holeRitterbuende()
	local reiter=holeTurnierritter(query)
	local s='{| class="tabellehuebsch sortable"'
		..'\n|- class="dunkel"'
		..'\n!Wappen'
		..'\n!Bild'
		..'\n!Name'
		..'\n!Alter'
		..'\n!Status'
		..'\n!Klasse'
		..'\n!Publikumssicht'
		..'\n!Bemerkung'
		..'\n!Bünde'
	for _,v in pairs(reiter) do
		s=s..ausgabe(v,buende)
	end
	return s..'\n|}'
end

return p