Modul:SmwWikibase: Unterschied zwischen den Versionen

Aus imedwiki
Zur Navigation springen Zur Suche springen
(Bezeichnung verwenden)
(Textausgabe bei Erzeugung von Subobjekten etwas optimiert)
Zeile 17: Zeile 17:
 
         then
 
         then
 
         value = entity["claims"]["P1"][1]["mainsnak"]["datavalue"]["value"]["text"]
 
         value = entity["claims"]["P1"][1]["mainsnak"]["datavalue"]["value"]["text"]
             result = result .. "* id: " .. id .. " value: " .. value .. '\n'
+
             result = result .. "* id: " .. id .. " value: " .. value
 
             -- set(value)
 
             -- set(value)
 
             smwData = {}
 
             smwData = {}
Zeile 24: Zeile 24:
 
             success = mw.smw.subobject(smwData)
 
             success = mw.smw.subobject(smwData)
 
             if (success) then
 
             if (success) then
             result = result .. "ok"
+
             result = result .. " - (ok)"
 
             else
 
             else
             result = result .. "Fehler"
+
             result = result .. " - (Fehler)"
 
             end
 
             end
 +
            result = result .. '\n'
 
         end
 
         end
 
         end
 
         end

Version vom 26. August 2021, 02:22 Uhr

Ausgabe dieses Moduls (mit Aufruf: {{#invoke:SmwWikibase|smwfromwikibase}}):

  • id: Q1 value: Integrative Medizin - (ok)
  • id: Q2 value: Anthroposophische Medizin - (ok)
  • id: Q3 value: Hauptseite - (ok)

local p = {}
local set = require('Module:Smw').set
 
function p.smwfromwikibase()
    local i
    local result
 
    result = ''
    for i = 1, 20, 1 do
    	pageId = "Q" .. i
    	id, entity, wrongQualifier = p.getEntity(pageId)
    	if (not wrongQualifier)
    	then
    		if (entity["claims"] ~= nil)
    		then
    			if (entity["claims"]["P1"] ~= nil)
    		    then
    		    	value = entity["claims"]["P1"][1]["mainsnak"]["datavalue"]["value"]["text"]
        		    result = result .. "* id: " .. id .. " value: " .. value
        		    -- set(value)
        		    smwData = {}
        		    smwData["Text"] = value
        		    smwData["Bezeichnung"] = "Aus Wikibase erzeugtes SMW - Subobjekt (" .. id .. ")" 
        		    success = mw.smw.subobject(smwData)
        		    if (success) then
        		    	result = result .. " - (ok)"
        		    else
        		    	result = result .. " - (Fehler)"
        		    end
        		    result = result .. '\n'
        		end
        	end
        end
    end
 
    return result
end

local function isSet( arg )
	return arg and arg ~= ''
end

function p.getEntity( id )
	local wrongQualifier = false
	local entity = nil
	
	if not isSet( id ) then
		return '', entity, wrongQualifier
	end
	if mw.wikibase.isValidEntityId( id ) then
		-- expensive function call
		-- redirect ids marked false, too
		entity = mw.wikibase.getEntity( id )
	end
	if not entity then
		id = ''
		wrongQualifier = true
	end

	return id, entity, wrongQualifier
end

return p