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

De Lagny-sur-Marne Wiki
Aller à la navigation Aller à la recherche
0x010D (discussion | contributions)
fonction transférée vers Module:WIkidata
0x010D (discussion | contributions)
mAucun résumé des modifications
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 wikidata = require "Module:Wikidata"
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  wikidata.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é
return wikidata.formatAndCat{property = event, entity = item}
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 wikidata.getDate
function p.maindate(entity) -- à améliorer en utilisant module:Date complexe comme pour wd.getDate
-- essaye P580/P582
-- essaye P580/P582
local startpoint = p.wikidatadate('P580', entity, {linkback = "-"})
local startpoint = wd.wikidataDate('P580', entity, {linkback = "-"})
local endpoint = p.wikidatadate('P582', 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 = wikidata.addLinkback(str, entity, 'P582')
str = wd.addLinkback(str, entity, 'P582')
end
end



Version du 21 mars 2016 à 00:06

-- 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