Modul:SmwWikibase: Unterschied zwischen den Versionen
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 | + | 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