Module:Wikidata: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>RexxS it wants a number (i.e. time) |
meta>RexxS add date format parameter |
||
Line 80: | Line 80: | ||
local propertyID = mw.text.trim(frame.args[1] or "") | local propertyID = mw.text.trim(frame.args[1] or "") | ||
local input_parm = mw.text.trim(frame.args[2] or "") | local input_parm = mw.text.trim(frame.args[2] or "") | ||
local date_format = mw.text.trim(frame.args[3] or "dmy") | |||
if input_parm == "FETCH_WIKIDATA" then | if input_parm == "FETCH_WIKIDATA" then | ||
local entity = mw.wikibase.getEntity() | local entity = mw.wikibase.getEntity() | ||
Line 90: | Line 91: | ||
dt.month = string.sub(d, 14, 15) | dt.month = string.sub(d, 14, 15) | ||
dt.day = string.sub(d, 17, 18) | dt.day = string.sub(d, 17, 18) | ||
out[#out + 1] = os.date("%e %B %Y", os.time(dt)) | if date_format == "dmy" then | ||
out[#out + 1] = os.date("%e %B %Y", os.time(dt)) | |||
else | |||
out[#out + 1] = os.date("%B %e, %Y", os.time(dt)) | |||
end | |||
end | end | ||
return table.concat(out, ", ") | return table.concat(out, ", ") |
Revision as of 14:15, 27 August 2013
Documentation for this module may be created at Module:Wikidata/doc
local p = {}
p.getSpouse = function(frame)
local input_parm = mw.text.trim(frame.args[1] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntity()
if entity.claims.p26 ~= nil then
local out = {}
for k, v in pairs(entity.claims.p26) do
out[#out + 1] = "[[" .. mw.wikibase.sitelink("Q" .. v.mainsnak.datavalue.value["numeric-id"]) .. "]]"
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
p.getBirthPlace = function(frame)
local input_parm = mw.text.trim(frame.args[1] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntity()
if entity.claims.p19 ~= nil then
local out = {}
for k, v in pairs(entity.claims.p19) do
out[#out + 1] = "[[" .. mw.wikibase.sitelink("Q" .. v.mainsnak.datavalue.value["numeric-id"]) .. "]]"
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
p.getValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntity()
if entity.claims[propertyID] ~= nil then
local out = {}
for k, v in pairs(entity.claims[propertyID]) do
out[#out + 1] = "[[" .. mw.wikibase.sitelink("Q" .. v.mainsnak.datavalue.value["numeric-id"]) .. "]]"
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
-- This is used to get a value like 'male' (for property p21) which won't be linked
p.getRawValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntity()
if entity.claims[propertyID] ~= nil then
local out = {}
for k, v in pairs(entity.claims[propertyID]) do
out[#out + 1] = mw.wikibase.label("Q" .. v.mainsnak.datavalue.value["numeric-id"])
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
-- This is used to get a date value for date_of_birth (p569), etc. which won't be linked -- consolidate by testing if entity.claims[propertyID].mainsnak.datavalue.type is "time"
p.getDateValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
local date_format = mw.text.trim(frame.args[3] or "dmy")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntity()
if entity.claims[propertyID] ~= nil then
local out = {}
local dt = {}
for k, v in pairs(entity.claims[propertyID]) do
local d = v.mainsnak.datavalue.value.time
dt.year = string.sub(d, 9, 12)
dt.month = string.sub(d, 14, 15)
dt.day = string.sub(d, 17, 18)
if date_format == "dmy" then
out[#out + 1] = os.date("%e %B %Y", os.time(dt))
else
out[#out + 1] = os.date("%B %e, %Y", os.time(dt))
end
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
return p