Module:Utilitaire Wikidata : Différence entre versions
m (A protégé « Module:Utilitaire Wikidata » : Modèle très utilisé ([Modifier=Autoriser uniquement les utilisateurs autoconfirmés] (infini) [Renommer=Autoriser uniquement les utilisateurs autoconfirmés] (infini))) |
|
(Aucune différence)
|
Version du 12 janvier 2016 à 11:46
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 wikidata = require "Module:Wikidata" 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 wikidata.getTheDate{property = 'P793', targetvalue = event, addcat = true, entity = item} elseif string.sub(event, 1, 1) == 'P' then -- on demande une propriété return wikidata.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 wikidata.getDate local startpoint = wikidata._formatStatements{property = 'P580', entity = entity, conjtype = 'or'} local endpoint = wikidata._formatStatements{property = 'P582', entity = entity, conjtype = 'or'} local str if startpoint or endpoint then str = (startpoint or '') .. ' - ' .. (endpoint or '') str = wikidata.addLinkback(str, entity, 'P582') end if startpoint then str = str .. wikidata.addtrackingcat('P580') end if endpoint then str = str .. wikidata.addtrackingcat('P582') end return str or wikidata.formatAndCat{property = 'P585', entity = entity, conjtype = 'or'} end function p.addLinkback(str, entity, property) return wikidata.addLinkback(str, entity, property) end function p.addtrackingcat(prop, cat) return wikidata.addtrackingcat(prop, cat) 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 function p.getClaims(args) return wikidata.getClaims(args) end function p._formatStatements(args) return wikidata._formatStatements(args) end function p.formatAndCat(args) return wikidata.formatAndCat(args) end return p