Saltar para o conteúdo

Módulo:WikidataCheck

Permanently protected module
Origem: Wikipédia, a enciclopédia livre.

local p = {}

function p.wikidatacheck(frame)
    local pframe = frame:getParent()
    local config = frame.args -- os argumentos passados PELA predefinição, no wikitexto da própria predefinição
    local args = pframe.args -- os argumentos passados PARA a predefinição, no wikitexto que transclui a predefinição
    
    local property = config.property
    local value = config.value or ""
    local catbase = config.category
    local namespaces = config.namespaces
    local ok = false -- marcação de uma só forma para verificar se está em um bom namespace
    local ns = mw.title.getCurrentTitle().namespace
    for v in mw.text.gsplit( namespaces, ",", true) do
        if tonumber(v) == ns then
            ok = true
        end
    end
    if not ok then -- não está um dos namespaces aprovados
        return ""
    end
    local entity = mw.wikibase.getEntityObject()
    if not entity then -- sem item do Wikidata
        return "[[Categoria:!" .. catbase .. " que não está no Wikidata]]"
    end
    local claims = entity.claims or {}
    local hasProp = claims[property]
    if not hasProp then -- nenhuma reivindicação desta propriedade
        return "[[Categoria:!" .. catbase .. " que não está no Wikidata]]" -- ruim. Os bots precisam adicionar a propriedade
    end
    local propValue = hasProp[1].mainsnak.datavalue.value -- Esta deve, eventualmente, iterar sobre todos os valores possíveis?
    if value == "" then
        return nil -- Usando o Wikidata
    elseif propValue == value then
        return "[[Categoria:!" .. catbase .. " igual ao Wikidata]]" -- yay!
    else
        return "[[Categoria:!" .. catbase .. " diferente do Wikidata]]" -- necessita de revisão humana :(
    end
end

return p
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy