Modul: SucheWidmungsempfänger: Unterschied zwischen den Versionen

Aus MAV
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 3: Zeile 3:
function p.CheckGND(frame)
function p.CheckGND(frame)
local queryresult = mw.smw.ask ( '[[' .. frame.args[1] .. ']]|?GND'  )
local queryresult = mw.smw.ask ( '[[' .. frame.args[1] .. ']]|?GND#-|format=text'  )
if queryResult == nil then
if queryResult == nil then
         return 'Keine Personen gefunden. <br>'
         return frame.args[1] .. 'Keine Personen gefunden. <br>'
          
          
     else
     else
    
    
     return 'Treffer!'
     return frame.args[1] .. 'Treffer!'
          
          
end
end

Aktuelle Version vom 18. Dezember 2023, 14:19 Uhr

Ziel

Ziel ist es, Personen zu finden, die automatisch als Widmungsempfänger aus dem VD17 importiert wurden und sie automatisch über die GND zu suchen.

Nötige Extensions

  • Scribunto
  • Semantic Scribunto

Zur Vorgehensweise

Aufruf der Funktion

Bitte exakt nach folgendem Schema in der "Vorlage:MAV" aufrufen

{{#invoke:SucheWidmungsempfänger|Abfrage}}

local p = {}

function p.CheckGND(frame)
	
	local queryresult = mw.smw.ask ( '[[' .. frame.args[1] .. ']]|?GND#-|format=text'  )
	
	if queryResult == nil then
		
        return frame.args[1] .. 'Keine Personen gefunden. <br>'
        
    else
    	
    	return frame.args[1] .. 'Treffer!'
        
	end
	
end

function p.Abfrage()
	
	local returnvalue = ''
	
	local queryResult = mw.smw.ask('[[Kategorie:Druck]][[Widmungsempfänger::+]][[Bearbeitungsstand::!validiert]][[Jahr::>1601]]|?Widmungsempfänger#-|limit=5000|link=none')
	
	if queryResult == nil then
		
        return 'Keine Personen gefunden. <br>'
        
	end
	
	if type( queryResult ) == "table" then
		
		for num, row in pairs( queryResult ) do
			
			Druck = row[1]
			data = row['Widmungsempfänger']
			
			if type( data ) == "string" then
			
				returnvalue = returnvalue .. Druck .. ': '.. data .. p.CheckGND(data) .. ' <br> '
				
			else
				
				for number, widmungsempfaenger in pairs(data) do
					
					returnvalue = returnvalue .. Druck .. ': '.. tostring(widmungsempfaenger) .. p.CheckGND(widmungsempfaenger) .. ' <br> '
				
				end
			
			end
					
		end
	
	end
	
	return returnvalue
	
end
	
return p