Module:Utilitaire Wikidata : Différence entre versions

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
(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 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

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