« Module:Utilitaire Wikidata » : différence entre les versions
Aucun résumé des modifications |
m A changé le niveau de protection pour « Module:Utilitaire Wikidata » ([Modifier=Autoriser uniquement les utilisateurs autopatrolled] (infini) [Renommer=Autoriser uniquement les administrateurs] (infini)) |
||
| (18 versions intermédiaires par le même utilisateur non affichées) | |||
| 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" | ||
function p.keydate (event, item) | |||
if type(event) ~= 'string' then | if type(event) == 'table' then | ||
for i, j in pairs(event) do | |||
local s = p.keydate(j) | |||
if s then | |||
return | return s | ||
end | |||
end | |||
elseif type(event) ~= 'string' then | |||
return error('event should be a string starting with a P or S, datatype is ' .. type(event)) | |||
elseif 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é | 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 16 : | Ligne 22 : | ||
end | end | ||
function p.maindate(entity) -- | function p.maindate(entity) | ||
local startpoint = | -- essaye P580/P582 | ||
local endpoint = | local startpoint = wd.wikidataDate('P580', entity, {linkback = "-"}) | ||
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 | ||
if str then | |||
return str | |||
if | |||
end | end | ||
-- défaut : P585 | |||
return wd.wikidataDate('P585', entity) | |||
return | |||
end | end | ||
return p | return p | ||
Dernière version du 17 mai 2017 à 13:46
-- Module de requêtes Wikidata de plus haut niveau que Module:Wikidata local p = {} local wd = require "Module:Wikidata"
function p.keydate (event, item) if type(event) == 'table' then for i, j in pairs(event) do local s = p.keydate(j) if s then return s end end elseif type(event) ~= 'string' then return error('event should be a string starting with a P or S, datatype is ' .. type(event)) elseif 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) -- 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 wd.wikidataDate('P585', entity) end
return p