Geen bewerkingssamenvatting |
Geen bewerkingssamenvatting |
||
| Regel 12: | Regel 12: | ||
end | end | ||
return json | return json | ||
end | |||
--[[ | |||
Local helper function for p.store | |||
Stores each instance in a subobject | |||
]]-- | |||
local function store_award_as_subobject( frame, args, award, awardEvent ) | |||
-- local item = args? | |||
if mw.smw then | |||
local subobject = { | |||
["Class"] = "Award recognition", | |||
["Belongs to award"] = award, | |||
["Belongs to award event"] = awardEvent, | |||
["Has position"] = args["Rank"] or false, | |||
["Has recognition type"] = args["Type"] or false, | |||
["Has category"] = args["Categorie"] or false, | |||
["Has recipient"] = mw.text.split( args["Title"], ',', plain ) or false, | |||
["Has description"] = args["Description"] or false | |||
} | |||
-- remove false ? | |||
local newSubobject = {}; | |||
for k,v in ipairs(subobject) do | |||
if v then | |||
newSubobject[k] = v | |||
end | |||
end | |||
local subobjectStore = mw.smw.subobject( newSubobject ) | |||
end | |||
return | |||
end | end | ||
| Regel 57: | Regel 89: | ||
end | end | ||
local function send_to_template( frame, templateName, argsTable ) | local function send_to_template( frame, templateName, argsTable ) | ||
Versie van 29 dec 2024 20:14
Module:Award category
local p = {}
--[[
test test
{{#invoke:Award category |main |json={{#slot:ws-data|{{FULLPAGENAME}}}} }}
]]--
function p.main ( frame )
local json = frame.args["json"]
if json == nil or json == "" then
return error("No JSON string found")
end
return json
end
--[[
Local helper function for p.store
Stores each instance in a subobject
]]--
local function store_award_as_subobject( frame, args, award, awardEvent )
-- local item = args?
if mw.smw then
local subobject = {
["Class"] = "Award recognition",
["Belongs to award"] = award,
["Belongs to award event"] = awardEvent,
["Has position"] = args["Rank"] or false,
["Has recognition type"] = args["Type"] or false,
["Has category"] = args["Categorie"] or false,
["Has recipient"] = mw.text.split( args["Title"], ',', plain ) or false,
["Has description"] = args["Description"] or false
}
-- remove false ?
local newSubobject = {};
for k,v in ipairs(subobject) do
if v then
newSubobject[k] = v
end
end
local subobjectStore = mw.smw.subobject( newSubobject )
end
return
end
--[[
Store in SMW
Consider using Lua version of parser function instead
{{#invoke:Award category
|store
|json={{#slot:ws-data|{{FULLPAGENAME}} }}
}}
]]--
function p.store( frame )
local jsonstr = frame.args["json"] or nil
if jsonstr == nil or jsonstr == "" then
--Fail silently
return
end
local json = mw.text.jsonDecode( jsonstr )
award = json["Award"] or false
awardEvent = json["AWard event"] or false
-- #set
if mw.smw then
local setTable = {
["Has name"] = json["Naam"] or false,
["Has description"] = json["Description"] or false
}
end
-- #subobjects
awardInstances = json["Awards"] or nil
if awardInstances ~= nil then
for i,v in ipairs( awardInstances ) do
store_award_as_subobject( frame, v, award, awardEvent )
end
end
--ternary
--local sign = if x < 0 then 'negative' else 'non-negative' end
return json["Naam"]
end
local function send_to_template( frame, templateName, argsTable )
if templateName ~= nil and argsTable ~= nil then
return frame:expandTemplate{ title = templateName, args = argsTable }
else
return ""
end
end
return p
