Module:Utilitaire Wikidata : Différence entre versions
(fonction transférée vers Module:WIkidata) |
m |
||
Ligne 1 : | Ligne 1 : | ||
-- Module de requêtes Wikidata de plus haut niveau que Module:Wikidata | -- Module de requêtes Wikidata de plus haut niveau que Module:Wikidata | ||
local p = {} | local p = {} | ||
− | local | + | local wd = require "Module:Wikidata" |
local linguistic = require "Module:Linguistique" | local linguistic = require "Module:Linguistique" | ||
local formatDate = require "Module:Date complexe" | local formatDate = require "Module:Date complexe" | ||
Ligne 10 : | Ligne 10 : | ||
end | end | ||
if string.sub(event, 1, 1) == 'Q' then -- on demande un élément utilisé dans P:P793 (événement clé) | if string.sub(event, 1, 1) == 'Q' then -- on demande un élément utilisé dans P:P793 (événement clé) | ||
− | return | + | return wd.getTheDate{property = 'P793', targetvalue = event, addcat = true, entity = item} |
elseif string.sub(event, 1, 1) == 'P' then -- on demande une propriété | elseif string.sub(event, 1, 1) == 'P' then -- on demande une propriété | ||
− | return | + | return wd.formatAndCat{property = event, entity = item} |
else | else | ||
return error('event string should start with P or S, is "' .. event .. '"') | return error('event string should start with P or S, is "' .. event .. '"') | ||
Ligne 18 : | Ligne 18 : | ||
end | end | ||
− | function p.maindate(entity) -- à améliorer en utilisant module:Date complexe comme pour | + | function p.maindate(entity) -- à améliorer en utilisant module:Date complexe comme pour wd.getDate |
-- essaye P580/P582 | -- essaye P580/P582 | ||
− | local startpoint = | + | local startpoint = wd.wikidataDate('P580', entity, {linkback = "-"}) |
− | local endpoint = | + | local endpoint = wd.wikidataDate('P582', entity, {linkback = "-"}) |
local str | local str | ||
if startpoint or endpoint then | if startpoint or endpoint then | ||
str = (startpoint or '') .. ' - ' .. (endpoint or '') | str = (startpoint or '') .. ' - ' .. (endpoint or '') | ||
− | str = | + | str = wd.addLinkback(str, entity, 'P582') |
end | end | ||
Version du 21 mars 2016 à 00:06
La documentation pour ce module peut être créée à Module:Utilitaire Wikidata/doc
-- Module de requêtes Wikidata de plus haut niveau que Module:Wikidata local p = {} local wd = require "Module:Wikidata" local linguistic = require "Module:Linguistique" local formatDate = require "Module:Date complexe" 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 wd.getTheDate{property = 'P793', targetvalue = event, addcat = true, entity = item} elseif string.sub(event, 1, 1) == 'P' then -- on demande une propriété return wd.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 wd.getDate -- essaye P580/P582 local startpoint = wd.wikidataDate('P580', entity, {linkback = "-"}) local endpoint = wd.wikidataDate('P582', entity, {linkback = "-"}) local str if startpoint or endpoint then str = (startpoint or '') .. ' - ' .. (endpoint or '') str = wd.addLinkback(str, entity, 'P582') end if str then return str end -- défaut : P585 return p.wikidatadate('P585', entity) 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 return p