Modul:Anrainerabfrage: Unterschied zwischen den Versionen

Aus GaretienWiki
Zur Navigation springen Zur Suche springen
VolkoV (D | B)
VolkoV (D | B)
Zeile 23: Zeile 23:
  
 
function kategorisiereUndHegemon(frame,lehen,title,catname,rekursion)
 
function kategorisiereUndHegemon(frame,lehen,title,catname,rekursion)
if lehen=='' then return '' end
+
return ""
 +
--[[ if lehen=='' then return '' end
 
  if rekursion==0 then return '' end
 
  if rekursion==0 then return '' end
 
  local heg=frame:callParserFunction(
 
  local heg=frame:callParserFunction(
Zeile 35: Zeile 36:
 
  end
 
  end
  
return '[[Kategorie:'..title..'|'..catname..']]'..hegsub
+
--]]
 +
-- return '[[Kategorie:'..title..'|'..catname..']]'..hegsub
 +
 
 
end
 
end
  
  
function printanrainersub(frame,anrainertable,catname,art,artpl)  
+
function printanrainersub(anrainertable,catname,art,artpl)  
 
result=''
 
result=''
 
for key,value in pairs(anrainertable) do
 
for key,value in pairs(anrainertable) do
 
if(value[3]==art) then
 
if(value[3]==art) then
 
t=mw.title.new(value[1]).text
 
t=mw.title.new(value[1]).text
result=result..'[['..value[1]..'|'..value[2]..']] ('..value[4]..' EW), '--..kategorisiereUndHegemon(frame,value,t,catname,7)..', '
+
result=result..'[['..value[1]..'|'..value[2]..']] ('..value[4]..' EW)'..kategorisiereUndHegemon(value,t,catname,7)..', '
 
end
 
end
 
end
 
end
Zeile 51: Zeile 54:
 
end
 
end
  
function printanrainer(frame,anrainertable,catname,weitereanrainer)
+
function printanrainer(anrainertable,catname,weitereanrainer)
 
result=''
 
result=''
result=result..printanrainersub(frame,anrainertable,catname,'Reich','Reiche')
+
result=result..printanrainersub(anrainertable,catname,'Reich','Reiche')
result=result..printanrainersub(frame,anrainertable,catname,'Provinz','Provinzen')
+
result=result..printanrainersub(anrainertable,catname,'Provinz','Provinzen')
result=result..printanrainersub(frame,anrainertable,catname,'Grafschaft','Grafschaften')
+
result=result..printanrainersub(anrainertable,catname,'Grafschaft','Grafschaften')
result=result..printanrainersub(frame,anrainertable,catname,'Baronie','Baronien')
+
result=result..printanrainersub(anrainertable,catname,'Baronie','Baronien')
result=result..printanrainersub(frame,anrainertable,catname,'Junkertum','Junkertümer')
+
result=result..printanrainersub(anrainertable,catname,'Junkertum','Junkertümer')
result=result..printanrainersub(frame,anrainertable,catname,'Ortschaft','Ortschaften')
+
result=result..printanrainersub(anrainertable,catname,'Ortschaft','Ortschaften')
result=result..printanrainersub(frame,anrainertable,catname,'Bauwerk','Bauwerke')
+
result=result..printanrainersub(anrainertable,catname,'Bauwerk','Bauwerke')
result=result..printanrainersub(frame,anrainertable,catname,'Unbekannt','Unbekannte')
+
result=result..printanrainersub(anrainertable,catname,'Unbekannt','Unbekannte')
result=result..frame:callParserFunction('#invoke','Text','Zeile','Sonstige',weitereanrainer)
+
result=result..subZeile('Sonstige',weitereanrainer)
 
return subZeilengruppe('Anrainer',result)
 
return subZeilengruppe('Anrainer',result)
 
end
 
end
Zeile 73: Zeile 76:
 
landschaft=frame.args[1]
 
landschaft=frame.args[1]
 
result=holeanrainer(landschaft)
 
result=holeanrainer(landschaft)
return dump(result,"").."\n"..printanrainer(frame,result,catname,weitereanrainer)
+
return dump(result,"").."\n"..printanrainer(result,catname,weitereanrainer)
 
end
 
end
  
 
return p
 
return p

Version vom 26. Januar 2022, 11:00 Uhr

Dokumentation und Testfälle unter Modul:Anrainerabfrage/Doku.
local p = {}

require("Modul:Hilfsfunktionen")
require("Modul:Text")

function holeanrainer(landschaft)
	if landschaft=='' then return '' end
	local anrainer=mw.smw.ask('[[Anrainer an::'..landschaft..']]'
		.."|mainlabel=-"
		.."|?#-="
		.."|?Kurzname#="
		.."|?Lehenstyp#="
		.."|?Einwohner="
		.."|limit=500"
		.."|sort=Detailstufe von,Einwohner"
		.."|order=asc,desc"
	)
	if anrainer==nil then
		return {}
	end
	return anrainer
end

function kategorisiereUndHegemon(frame,lehen,title,catname,rekursion)
	return ""
--[[ if lehen=='' then return '' end
 if rekursion==0 then return '' end
 local heg=frame:callParserFunction(
  '#show',lehen,
  '?Vasallenlehen von#'
 )
 hegsub=''
 if heg~=''then
  t=mw.title.new(heg).text
  hegsub=kategorisiereUndHegemon(frame,heg,t,catname,rekursion-1)
 end

--]]
-- return '[[Kategorie:'..title..'|'..catname..']]'..hegsub

end


function printanrainersub(anrainertable,catname,art,artpl) 
	result=''
	for key,value in pairs(anrainertable) do
		if(value[3]==art) then
			t=mw.title.new(value[1]).text
			result=result..'[['..value[1]..'|'..value[2]..']] ('..value[4]..' EW)'..kategorisiereUndHegemon(value,t,catname,7)..', '
		end
	end
	result=mw.ustring.sub(result,1,mw.ustring.len(result)-2)
	return subZeile(artpl,result)
end

function printanrainer(anrainertable,catname,weitereanrainer)
	result=''
	result=result..printanrainersub(anrainertable,catname,'Reich','Reiche')
	result=result..printanrainersub(anrainertable,catname,'Provinz','Provinzen')
	result=result..printanrainersub(anrainertable,catname,'Grafschaft','Grafschaften')
	result=result..printanrainersub(anrainertable,catname,'Baronie','Baronien')
	result=result..printanrainersub(anrainertable,catname,'Junkertum','Junkertümer')
	result=result..printanrainersub(anrainertable,catname,'Ortschaft','Ortschaften')
	result=result..printanrainersub(anrainertable,catname,'Bauwerk','Bauwerke')
	result=result..printanrainersub(anrainertable,catname,'Unbekannt','Unbekannte')
	result=result..subZeile('Sonstige',weitereanrainer)
	return subZeilengruppe('Anrainer',result)
end

function p.Abfrage(frame)
	if (frame.args[1]==nil) then
		return "no parameter found"
	end
	catname=robusttrim(frame.args[2])
	weitereanrainer=robusttrim(frame.args[3])
	landschaft=frame.args[1]
	result=holeanrainer(landschaft)
	return dump(result,"").."\n"..printanrainer(result,catname,weitereanrainer)
end

return p