Mudanças entre as edições de "Módulo:Interface Wikidata"

Origem: IRChelp Brasil - Wiki
Ir para navegação Ir para pesquisar
(Criação do Módulo Interface Wikidata)
 
(Sem diferença)

Edição atual tal como às 11h00min de 21 de abril de 2021


Descrição

Este módulo tem funções auxiliares para mostrar dados Wikidata com chamadas dentro de infocaixas e outras predefinições.

Uso

Outra documentação:


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