« Module:Utilitaire Wikidata » : différence entre les versions

De Lagny-sur-Marne Wiki
Aller à la navigation Aller à la recherche
0x010D (discussion | contributions)
mAucun résumé des modifications
0x010D (discussion | contributions)
m A changé le niveau de protection pour « Module:Utilitaire Wikidata » ([Modifier=Autoriser uniquement les utilisateurs autopatrolled] (infini) [Renommer=Autoriser uniquement les administrateurs] (infini))
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
local p = {}
local p = {}
local wd = require "Module:Wikidata"
local wd = require "Module:Wikidata"
local linguistic = require "Module:Linguistique"
local formatDate = require "Module:Date complexe"


local function keydate (event)
function p.keydate (event, item)
if type(event) ~= 'string' then
if type(event) == 'table' then
return error('event should be a string starting with a P or S, datatype is ' .. type(event))
for i, j in pairs(event) do
end
local s = p.keydate(j)
if string.sub(event, 1, 1) == 'Q' then -- on demande un élément utilisé dans P:P793 (événement clé)
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}
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é
Ligne 33 : Ligne 37 :
-- défaut : P585
-- défaut : P585
return wd.wikidataDate('P585', entity)
return wd.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
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