Module:Βασική ημερομηνία
Εμφάνιση
Documentation for this module may be created at Module:Βασική ημερομηνία/τεκμηρίωση
-- en développement (à éventuellement généraliser et intégrer dans Module:Wikidata)
local wikidata = require( 'Module:Wikidata')
local formatdate = require( 'Module:Date')
local h = require( 'Module:Wikidata/Dates')
local p = {}
function p.test(frame)
return h.keydate(frame.args['event'])
end
function p.keydate(frame) -- should be possible to provide a list of "fallback" events
event = string.upper(frame.args[1])-- to do: make it possible to provide a list of "fallback" events
claims = wikidata.getClaims({property = 'p793', targetvalue = event})
if not claims then
return nil
end
datetable = {}
for i, j in pairs(claims) do
if j.qualifiers then
if j.qualifiers['p585'] then --property:date
for k, l in pairs(j.qualifiers['p585']) do
table.insert(datetable, {id= wikidata.getDatavalue(l, 'raw'), value = wikidata.getDatavalue(l)})
end
elseif j.qualifiers['p580'] then --property:date de début
if j.qualifiers['p582'] then -- if start date and end date in the same claim, they must be unique
table.insert(datetable, {id= wikidata.getDatavalue(j.qualifiers['p580'][0], 'raw'), value = wikidata.getDatavalue(j.qualifiers['p580'][0]) .. '-' .. wikidata.getDatavalue(j.qualifiers['p582'][0])})
else
for k, l in pairs(j.qualifiers['p580']) do
table.insert(datetable, {id= wikidata.getDatavalue(l, 'raw'), value = 'à partir de : ' .. wikidata.getDatavalue(l)})
end
end
elseif j.qualifiers['p582'] then --property:date de fin
for k, l in pairs(j.qualifiers['p582']) do
table.insert(datetable, {id= wikidata.getDatavalue(l, 'raw'), value = 'jusqu\'à ' .. wikidata.getDatavalue(l)})
end
end
end
end
datetext = ''
table.sort(datetable, function(a,b) return a.id < b.id end)
finaltable = {}
for i, j in pairs(datetable) do
table.insert(finaltable, j.value)
end
return mw.text.listToText(finaltable)
end
return p