Módulo:Interface Wikidata

Fonte: Enciclopédia de conhecimento da Igreja de Deus
Saltar para a navegação Saltar para a pesquisa

A documentação para este módulo pode ser criada na página Módulo:Interface Wikidata/doc

local p = {}
local d = require 'Módulo:Infobox/Wikidata'
-- funções que só podem ser chamadas de outro módulo
p.fromLua = {
				
				-- manipulação de uma lista de afirmações
				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,
				
				-- manipulação de uma afirmação individual
				getmainid = d.getMainId,
				formatStatement = d.formatStatement,
				statementDate = d.getFormattedDate, -- obter a data dos qualificadores
				getFormattedQualifiers = d.getFormattedQualifiers,
				getQualifiers = d.getQualifiers,
				getReferences = d.getReferences,
				-- manipulação de snaks    
				getid = d.getId,
				formatSnak = d.formatSnak,
				
				-- utilização de qids
				getEntity = d.getEntity,
				formatEntity = d.formatEntity,
				getLink = d.siteLink,
				getLabel = d.getLabel, --getLabel é mais simples que formatEntity
				-- uso de propriedades transitivas
				isInstance = d.isInstance,
				isSubclass = d.isSubclass,
				addVals = d.addVals,
				transitiveVals = d.transitiveVals,
				inTransitiveVals = d.inTransitiveVals,
				findVal = d.findVal,
				-- gestão de datas
				mainDate = d.mainDate,
				getDate = d.getTheDate,
				keyDate = d.keyDate,
				-- Funções diversas
				citeItem = d.citeitem,
				translate = d.translate,
				Dump = d.Dump,
}
-- Funções de quadro para uso do Wikitexto (às vezes com opções para manipular dados menos limpos
local function cleanargs(args)
				local newargs = {}
				for i, j in pairs(args) do
								if j ~= '' then
												newargs[i] = j
								end
				end
				return newargs
end
function p.formatStatements( frame ) -- para [[Predefinição:Wikidata]]
				local args = {}
				if frame == mw.getCurrentFrame() then
								args = frame:getParent().args -- chamando parâmetros do modelo (isso é realmente uma boa ideia?)
								for k, v in pairs(frame.args) do
												args[k] = v
								end
				else
								args = frame
				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]
				if (not entity) or (entity == '') then
								entity = mw.wikibase.getEntityObject()
				end
				return d.formatEntity(entity, args)
end
function p.formatAndCat(frame)
				local args = cleanargs(frame.args)
				return d.formatAndCat(args)
end
function p.citeItem(frame)
				local args = cleanargs(frame.args)
				local item, page = args[1], args['page']
				return p.fromLua.citeItem(item, page)
end
function p.getLabel(frame)
				local args = cleanargs(frame.args)
				local item = args[1]
				local lang = args[2] or "pt"
				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) -- função simplista, mas boa, descrições Wikidata, não é super útil
				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