Modul:Lehensabfrage: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 20: | Zeile 20: | ||
end | end | ||
function holelehen(familie,manuell) | function holelehen(jahr,familie,manuell) | ||
if familie=='' then return '' end | if familie=='' then return '' end | ||
| Zeile 43: | Zeile 43: | ||
if allelehen[lvalue[1]]==nil then allelehen[lvalue[1]]={} end | if allelehen[lvalue[1]]==nil then allelehen[lvalue[1]]={} end | ||
local von=lvalue[3]/10000 | local von=lvalue[3]/10000 | ||
local bis=lvalue[4]/10000 | local bis=math.min(jahr,lvalue[4]/10000) | ||
for i=von,bis,1 do | for i=von,bis,1 do | ||
allelehen[lvalue[1]][i]=1 | allelehen[lvalue[1]][i]=1 | ||
| Zeile 70: | Zeile 70: | ||
manuell=robusttrim(frame.args[5]) | manuell=robusttrim(frame.args[5]) | ||
local familie=frame.args[1] | local familie=frame.args[1] | ||
local result=holelehen(familie,manuell) | local result=holelehen(1047,familie,manuell) | ||
if true then | if true then | ||
return result | return result | ||
Version vom 15. April 2024, 17:27 Uhr
Dokumentation und Testfälle unter Modul:Lehensabfrage/Doku.
local p = {}
require("Modul:Hilfsfunktionen")
function holelehensub(mitglied)
if mitglied=='' then return {} end
local s='[[-has subobject::'..mitglied..']]'
local lehen=mw.smw.ask(s
..'|mainlabel=-'
..'|?Herrscher von Lehen#='
..'|?Herrscher von Art#='
..'|?Herrscher von VonIndex#='
..'|?Herrscher von BisIndex#='
..'|limit=500'
..'|searchlabel='
..'|sort=Herrscher von VonIndex'
)
if lehen==nil then return {} end
return lehen
end
function holelehen(jahr,familie,manuell)
if familie=='' then return '' end
--Finde alle Familienmitglieder
local s='<q>[[Familienmitglied von::'..familie..']] OR [[Familienmitglied von.Untergruppierung von::'..familie..']]</q>'
local mitglieder=mw.smw.ask(s
..'|mainlabel=-'
..'|?#-='
..'|limit=500'
..'|searchlabel='
)
if mitglieder==nil then mitglieder={} end
--Finde alle Lehen dieser Familienmitglieder
--TODO: manuell einmischen
local result=''
local allelehen={}
for mkey,mvalue in pairs(mitglieder) do
local lehen=holelehensub(mvalue[1])
for lkey,lvalue in pairs(lehen) do
if lvalue[1]~=nil then
if allelehen[lvalue[1]]==nil then allelehen[lvalue[1]]={} end
local von=lvalue[3]/10000
local bis=math.min(jahr,lvalue[4]/10000)
for i=von,bis,1 do
allelehen[lvalue[1]][i]=1
end
--result=result..'\n*[['..lvalue[1]..']] ('..lvalue[2]..': '..lvalue[3]..' bis '..lvalue[4]..')'
end
end
end
for akey,avalue in pairs(allelehen) do
local count=0;
for _ in pairs(avalue) do count=count+1 end
result=result..'\n*[['..akey..']] ('..count..' Jahre)'
end
return result
end
function p.Abfrage(frame)
if (frame.args[1]==nil) then
return 'no parameter found'
end
catname=robusttrim(frame.args[2])
weiterelehen=robusttrim(frame.args[3])
weitereaemter=robusttrim(frame.args[4])
manuell=robusttrim(frame.args[5])
local familie=frame.args[1]
local result=holelehen(1047,familie,manuell)
if true then
return result
end
end
return p