Modul:Anrainerabfrage: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
VolkoV (Diskussion | Beiträge) (Automatisch synchronisiert.) |
VolkoV (Diskussion | Beiträge) K (Automatisch synchronisiert.) |
||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
require("Modul:Hilfsfunktionen") | |||
require("Modul:Text") | |||
function | 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 | end | ||
function | 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, 06:05 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