Module:Utilitaire Wikidata
La documentation pour ce module peut être créée à Module:Utilitaire Wikidata/Documentation
-- Module de requêtes Wikidata de plus haut niveau que Module:Wikidata
local p = {}
local wikidata = require "Module:Wikidata"
local function keydate (event)
if type(event) ~= 'string' then
return error('event should be a string starting with a P or S, datatype is ' .. type(event))
end
if string.sub(event, 1, 1) == 'Q' then -- on demande un élément utilisé dans P:P793 (événement clé)
return wikidata.getTheDate{property = 'P793', targetvalue = event, addcat = true, entity = item}
elseif string.sub(event, 1, 1) == 'P' then -- on demande une propriété
return wikidata.formatAndCat{property = event, entity = item}
else
return error('event string should start with P or S, is "' .. event .. '"')
end
end
function p.maindate(entity) -- à améliorer en utilisant module:Date complexe comme pour wikidata.getDate
local startpoint = wikidata._formatStatements{property = 'P580', entity = entity, conjtype = 'or'}
local endpoint = wikidata._formatStatements{property = 'P582', entity = entity, conjtype = 'or'}
local str
if startpoint or endpoint then
str = (startpoint or '') .. ' - ' .. (endpoint or '')
str = wikidata.addLinkback(str, entity, 'P582')
end
if startpoint then
str = str .. wikidata.addtrackingcat('P580')
end
if endpoint then
str = str .. wikidata.addtrackingcat('P582')
end
return str or wikidata.formatAndCat{property = 'P585', entity = entity, conjtype = 'or'}
end
function p.addLinkback(str, entity, property)
return wikidata.addLinkback(str, entity, property)
end
function p.addtrackingcat(prop, cat)
return wikidata.addtrackingcat(prop, cat)
end
function p.keydate(events)
if type(events) == 'nil' then
return nil
end
if type(events) == 'string' then
return keydate(events)
elseif type(events) == 'table' then
for i, j in pairs(events) do
local val = keydate(j)
if val then
return val
end
end
end
end
function p.getClaims(args)
return wikidata.getClaims(args)
end
function p._formatStatements(args)
return wikidata._formatStatements(args)
end
function p.formatAndCat(args)
return wikidata.formatAndCat(args)
end
return p