Modul:Anrainerabfrage: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K (Schützte „Modul:Anrainerabfrage“: Automatisch gesperrt. ([Verschieben=Nur Administratoren erlauben] (unbeschränkt) [Bearbeiten=Nur Administratoren erlauben] (unbeschränkt))) |
|||
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 22: | Zeile 22: | ||
end | end | ||
− | function kategorisiereUndHegemon( | + | function kategorisiereUndHegemon(lehen,title,catname,rekursion) |
− | + | if rekursion==0 then return '' end | |
− | + | if lehen=='' then return '' end | |
− | + | ||
− | + | local heg=mw.smw.ask('[['..lehen[1]..']]' | |
− | + | .."|mainlabel=-" | |
− | + | ..'|?Vasallenlehen von#=') | |
− | + | hegsub='' | |
− | + | if false and(heg[1]~=nil)and(heg[1][1]~=nil) then | |
− | + | t=mw.title.new(heg[1][1]).text | |
− | + | hegsub=kategorisiereUndHegemon(heg[1][1],t,catname,rekursion-1) | |
− | + | end | |
− | + | return '[[Kategorie:'..title..'|'..catname..']]'..hegsub | |
− | |||
end | end | ||
− | function printanrainersub( | + | 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 | end | ||
− | function printanrainer( | + | 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 | end | ||
function p.Abfrage(frame) | 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 printanrainer(result,catname,weitereanrainer) | |
end | end | ||
return p | return p |
Aktuelle Version vom 23. März 2022, 11:36 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(lehen,title,catname,rekursion) if rekursion==0 then return '' end if lehen=='' then return '' end local heg=mw.smw.ask('[['..lehen[1]..']]' .."|mainlabel=-" ..'|?Vasallenlehen von#=') hegsub='' if false and(heg[1]~=nil)and(heg[1][1]~=nil) then t=mw.title.new(heg[1][1]).text hegsub=kategorisiereUndHegemon(heg[1][1],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 printanrainer(result,catname,weitereanrainer) end return p