Module:Interface Wikidata
Aller à la navigation
Aller à la recherche
La documentation pour ce module peut être créée à Module:Interface Wikidata/doc
local p = {} local d = require 'Module:Wikidata' -- fonctions ne pouvant être appelées que depuis un autre module p.fromLua = { -- manipulation d'une liste d'affirmations getClaims = d.getClaims, stringTable = d.stringTable, tableToText = d.tableToText, formatStatements = d.formatStatements, formatQualifiers = d.showQualifier, formatAndCat = d.formatAndCat, wikidataDate = d.wikidataDate, addLinkback = d.addLinkBack, addtrackingcat = d.addTrackingCat, -- manipulation d'une affirmation individelle getmainid = d.getMainId, formatStatement = d.formatStatement, statementDate = d.getFormattedDate, -- récupère la date des qualificatifs getFormattedQualifiers = d.getFormattedQualifiers, getQualifiers = d.getQualifiers, getReferences = d.getReferences, -- manipulation de snaks getid = d.getId, formatSnak = d.formatSnak, -- utilisation de qids getEntity = d.getEntity, formatEntity = d.formatEntity, getLink = d.siteLink, getLabel = d.getLabel, --getLabel est plus simple que formatEntity -- utilisation des propriétés transitives isInstance = d.isInstance, isSubclass = d.isSubclass, addVals = d.addVals, transitiveVals = d.transitiveVals, inTransitiveVals = d.inTransitiveVals, findVal = d.findVal, -- gestion des dates mainDate = d.mainDate, getDate = d.getTheDate, keyDate = d.keyDate, -- Fonctions diverses translate = d.translate, Dump = d.Dump, } -- Fonctions frame pour usage depuis le Wikitexte (avec parfois des options pour gérer des données moins propres local function cleanargs(args) local newargs = {} for k, v in pairs(args) do if v ~= '' then --[[ possibilité de passer des booléen, convertion des valeur "true", "false" en booleen lua (sinon le module lua ne prend pas en compte "excludespecial" qui est "true" par défaut et considère toute chaîne comme vraie) --]] if v == "true" then newargs[k] = true elseif v == "false" then newargs[k] = false else newargs[k] = v end end end return newargs end function p.formatStatements( frame ) -- pour Modèle:Wikidata local args = {} if frame == mw.getCurrentFrame() then args = cleanargs(frame.args) -- paramètres en dur du code de Modèle:Wikidata for k, v in pairs(cleanargs(frame:getParent().args)) do -- chargement des paramètres de l'appel au modèle, -- pour permettre la surcharge des paramètres par défaut dans "Modèle:Wikidata" args[k] = v end else args = frame end if args.blockers and args.blockers ~= '' then return args.value end return p.fromLua.formatStatements( args ) end function p.addLinkBack( frame ) local args = cleanargs(frame.args) if args[1] and args[1]:match"%S" then return d.addLinkBack( '', args.entity, mw.text.trim( args[1] ) ) end end function p.formatEntity(frame) local args = cleanargs(frame.args) local entity = args.entity or args[1] return d.formatEntity(entity, args) end function p.formatAndCat(frame) local args = cleanargs(frame.args) return d.formatAndCat(args) end function p.getLabel(frame) local args = cleanargs(frame.args) local item = args[1] local lang = args[2] or "fr" return d.getLabel(item, lang) end function p.mainDate(frame) return d.mainDate(frame.args['entity']) end function p.Dump(frame) return d.Dump(frame.args[1]) end function p.formatQualifiers(frame) local args = frame.args return d.formatQualifiers(args) end function p.getDescription(frame) -- fonction simpliste, mais bon, les descriptions Wikidata, c'est pas non plus super utile return mw.wikibase.description(frame.args[1]) end function p.getLink(frame) local args = frame.args local link, proj, lang = p.fromLua.getLink(args[1], args[2], args[3]) return link end function p.translate(frame) return d.translate(frame.args[1]) end function p.findVal(frame) local args = frame.args return d.findVal(args.source, args.target, args.property, args.recursion, args.instancedepth) end function p.transitiveVals(frame) local args = frame.args return d.transitiveVals(args.item, args, args.maxdepth, args.maxnodes, args.stopval, true) end return p