Wikipédia:Café dos programadores/Arquivo/2023/2

Alteração de filtro editar

Para conhecimento, alterei o filtro 113 (criação de páginas sem fontes) para considerar apenas a palavra inteira "fonte"(s) e "referência"(s) como aceitáveis, evitando aceitar artigos com palavras como "preferências", como RUA21 (Redes Urbanas de Arte do Rio de Janeiro). Testei contra Usuário(a):Saturnalia0/Testes. Saturnalia0 (discussão) 10h35min de 6 de abril de 2023 (UTC)[responder]

alvanista.com editar

Por que o site alvanista.com está dentro do filtro de spam? A fonte nem sequer levada a discussão para afirmar a sua não fiabilidade. Estou impedido uma review em artigo numa PE por causa desse filtro bobo. --A.WagnerC (discussão) 14h22min de 7 de abril de 2023 (UTC)[responder]

Exibir no website informações do wikidata usando API e PHP editar

Um código simples em PHP (exemplo) para exibir em um website informações de um objeto do wikidata. Por exemplo, Douglas Adams representado no wikidata por Q42:

<?php
// ID do objeto do Wikidata (Douglas Adams)
$wikidata_id = "Q42";

// monta a URL para usar a API da Mediawiki/Wikimedia
$url = "https://www.wikidata.org/w/api.php?action=wbgetentities&format=json&ids=" . $wikidata_id . "&languages=pt-br";

// Recupera os dados do objeto do Wikidata, faz uma requisição para a API para obter os dados do objeto
$data = file_get_contents($url);

// Decodifica o JSON para um array associativo
$json = json_decode($data, true);

// Extrai as informações relevantes do objeto do Wikidata
$label = $json["entities"][$wikidata_id]["labels"]["pt-br"]["value"];
$descricao = $json["entities"][$wikidata_id]["descriptions"]["pt-br"]["value"];
$image = $json["entities"][$wikidata_id]["claims"]["P18"][0]["mainsnak"]["datavalue"]["value"];

// Exibe as informações na página
echo "<h1>$label</h1>";
echo "<p>$descricao</p>";
echo "<img src='$image' alt='$label'>";
?>

Abraço. - Elilopes DEBATE 21h48min de 14 de abril de 2023 (UTC)[responder]

@Elilopes: Tem certa documentação em mw:Wikibase/API sobre a API do Wikibase também. Está trabalhando em algum projeto com PHP? ━ ALBERTOLEONCIO Who, me? 01h18min de 16 de abril de 2023 (UTC)[responder]
Obrigado Albertoleoncio pela informação sobre a Wikibase. Estou apenas estudando a integração com PHP.

Então segue um exemplo de código em PHP usando a API Wikibase para exibir informações em um website. Por exemplo, Albert Einstein representado por Q76:

<!DOCTYPE html>
<html>
<body>
  <?php
    // O ID do item a ser recuperado (Albert Einstein)
    $item_id = "Q76";

    // Montando a URL do Wikibase para ser usada (pt-br) - para informações em inglês substitua languages=pt-br por languages=en
    $api_url = "https://www.wikidata.org/w/api.php?action=wbgetentities&ids=$item_id&format=json&languages=pt-br";

    // Faz uma requisição HTTP para a API do Wikibase para obter os dados do objeto (pt-br)
    $data = json_decode(file_get_contents($api_url), true);

    // Extrai as informações relevantes do item - para informações em inglês substitua ["pt-br"] por ["en"]
    $item = $data["entities"][$item_id];
    $nome = $item["labels"]["pt-br"]["value"];
    $descricao = $item["descriptions"]["pt-br"]["value"];
    $imagem = $item["claims"]["P18"][0]["mainsnak"]["datavalue"]["value"];

    // Exibe as informações em uma tabela HTML
    echo "<table>";
    echo "<tr><th>Propriedade</th><th>Valor</th></tr>";
    echo "<tr><td>Nome</td><td>$nome</td></tr>";
    echo "<tr><td>Descrição</td><td>$descricao</td></tr>";
    echo "<tr><td>Imagem</td><td><img src='$imagem' alt='$nome'></td></tr>";
    echo "</table>";
  ?>
</body>
</html>

Exibir no website informações usando Wikibase e javascript editar

Também estou pesquisando a integração do wikibase com javascript

<!DOCTYPE html>
<html>

<body>
  <div id="info"></div>
  
  <script>
     // O ID do item a ser recuperado (Albert Einstein)
    const item_id = "Q76";
    
   // Montando a URL de comunicação com o Wikibase (pt-br)
    const api_url = `https://www.wikidata.org/w/api.php?action=wbgetentities&ids=${item_id}&format=json&languages=pt-br`;
    
    // Faz a requisição HTTP para a API do Wikibase para obter os dados do item Q76 (Albert Einstein)
    fetch(api_url)
      .then(response => response.json())
      .then(data => {
        // Extrai as informações relevantes do item em pt-br
        const item = data.entities[item_id];
        const nome = item.labels["pt-br"].value;
        const descricao = item.descriptions["pt-br"].value;
        const imagem = item.claims.P18[0].mainsnak.datavalue.value;
        
        // Informações do item Q76 são exibidas diretamente em elementos HTML - criando os elementos
        const nameElement = document.createElement("h1");
        nameElement.textContent = nome;
        
        const descriptionElement = document.createElement("p");
        descriptionElement.textContent = descricao;
        
        const imageElement = document.createElement("img");
        imageElement.setAttribute("src", imagem);
        imageElement.setAttribute("alt", nome);
        
        // Adiciona os elementos à página
        const infoDiv = document.querySelector("#info");
        infoDiv.appendChild(nameElement);
        infoDiv.appendChild(descriptionElement);
        infoDiv.appendChild(imageElement);
      })
      .catch(error => console.error(error));
  </script>
</body>
</html>

Um exemplo de código javascript exibindo as informações do item Q76 (Albert Einstein) em uma tabela:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Exemplo de exibição de informações usando Wikibase e JavaScript</title>
</head>
<body>
  <div id="info"></div>
  
  <script>
    // O ID do item a ser recuperado (Albert Einstein)
    const item_id = "Q76";
    
    // Montando a URL do Wikibase para ser usada (pt-br)
    const api_url = `https://www.wikidata.org/w/api.php?action=wbgetentities&ids=${item_id}&format=json&languages=pt-br`;
    
    // Faz uma requisição HTTP para a API do Wikibase para obter os dados do objeto (pt-br)
    fetch(api_url)
      .then(response => response.json())
      .then(data => {
        // Extrai as informações relevantes do item
        const item = data.entities[item_id];
        const nome = item.labels["pt-br"].value;
        const descricao = item.descriptions["pt-br"].value;
        const imagem = item.claims.P18[0].mainsnak.datavalue.value;
        
        // Cria um elemento de tabela HTML
        const table = document.createElement("table");
        
        // Cria uma linha para o nome
        const row1 = document.createElement("tr");
        const nameHeader = document.createElement("th");
        nameHeader.textContent = "Nome";
        const nameValue = document.createElement("td");
        nameValue.textContent = nome;
        row1.appendChild(nameHeader);
        row1.appendChild(nameValue);
        
        // Cria uma linha para a descrição
        const row2 = document.createElement("tr");
        const descriptionHeader = document.createElement("th");
        descriptionHeader.textContent = "Descrição";
        const descriptionValue = document.createElement("td");
        descriptionValue.textContent = descricao;
        row2.appendChild(descriptionHeader);
        row2.appendChild(descriptionValue);
        
        // Cria uma linha para a imagem
        const row3 = document.createElement("tr");
        const imageHeader = document.createElement("th");
        imageHeader.textContent = "Imagem";
        const imageValue = document.createElement("td");
        const image = document.createElement("img");
        image.setAttribute("src", imagem);
        image.setAttribute("alt", nome);
        imageValue.appendChild(image);
        row3.appendChild(imageHeader);
        row3.appendChild(imageValue);
        
        // Adiciona as linhas à tabela
        table.appendChild(row1);
        table.appendChild(row2);
        table.appendChild(row3);
        
        // Adiciona a tabela à página
        const infoDiv = document.querySelector("#info");
        infoDiv.appendChild(table);
      })
      .catch(error => console.error(error));
  </script>
</body>
</html>

biblioteca wikibase-sdk editar

Agora um código de exemplo usando usando a biblioteca wikibase-sdk do JavaScript para comunicação com a API do Wikibase e obter as informações do item desejado:

<!DOCTYPE html>
<html>

<body>
  <div id="info"></div>

  <script src="https://cdn.jsdelivr.net/npm/wikibase-sdk@6.3.1/dist/wikibase-sdk.js"></script>
  <script>
    // Define o ID do item que será pesquisado
    const item_id = "Q76";

    // Define a URL da API do Wikibase
    const api_url = "https://www.wikidata.org/w/api.php";

    // Define as opções da consulta com o idioma desejado (pt-br)
    const options = {
      languages: ["pt-br"],
      claims: "all"
    };

    // Cria um objeto Wikibase para a comunicação com a API
    const wbk = new WBK({
      instance: "https://www.wikidata.org",
      sparqlEndpoint: "https://query.wikidata.org/sparql",
      "user-agent": "Meu website (meuemail@provedor.com)"
    });

    // Faz a consulta para obter as informações do item Q76 (Albert Einstein)
    wbk.getEntities([item_id], options)
      .then(entities => {
        // Extrai as informações relevantes do item
        const entity = entities[item_id];
        const nome = entity.labels["pt-br"].value;
        const descricao = entity.descriptions["pt-br"].value;
        const imagem = entity.claims.P18[0].mainsnak.datavalue.value;

        // Cria elementos HTML para exibir as informações
        const nameElement = document.createElement("h1");
        nameElement.textContent = nome;

        const descriptionElement = document.createElement("p");
        descriptionElement.textContent = descricao;

        const imageElement = document.createElement("img");
        imageElement.setAttribute("src", imagem);
        imageElement.setAttribute("alt", nome);

        // Adiciona os elementos à página
        const infoDiv = document.querySelector("#info");
        infoDiv.appendChild(nameElement);
        infoDiv.appendChild(descriptionElement);
        infoDiv.appendChild(imageElement);
      })
      .catch(error => console.error(error));
  </script>
</body>
</html>

Abraço. - Elilopes DEBATE 20h18min de 18 de abril de 2023 (UTC)[responder]

Graph extension disabled editar

Yesterday the Wikimedia Foundation noted that in the interests of the security of our users, the Graph extension was disabled. This means that pages that were formerly displaying graphs will now display a small blank area. To help readers understand this situation, communities can now define a brief message that can be displayed to readers in place of each graph until this is resolved. That message can be defined on each wiki at MediaWiki:Graph-disabled. Wikimedia Foundation staff are looking at options available and expected timelines. For updates, follow the public Phabricator task for this issue: T334940

--MediaWiki message delivery (discussão) 17h36min de 19 de abril de 2023 (UTC)[responder]

Parâmetros da predefinição YouTube editar

O Youtube tem novas IDs para canais, como o uso do @ , tentei editar e não consegui. Hyju (discussão) 15h30min de 22 de abril de 2023 (UTC)[responder]

@Hyju: Olá Hyju, na predefinição YouTube não havia possibilidade de usar as novas IDs para canais com o uso do @ , então para resolver esse problema, acrescentei essa possibilidade na predefinição com essa edição 65740848], acredito que isso resolva. Juan90264 (Disc.) 11h56min de 23 de abril de 2023 (UTC)[responder]
Obrigado, funcionou, também tem uma outra chamada Custom, que a única diferença é não ter o arroba.Hyju (discussão) 20h17min de 23 de abril de 2023 (UTC)[responder]

Modificação da classe CSS "AFI" editar

Essa classe faz com que a {{AFI}} mostre a pronúncia em negrito, o que não faz sentido (talvez até fizesse algum sentido usar uma fonte mais "fina", nunca mais "grossa"). Se concordarem, alguém pode mudá-la, por favor? Ou então, sem os admins têm acesso a tal coisa, dizer-me onde é que está o ficheiro CSS onde está definida a classe? Obrigado. -- Stegop (discussão) 01h59min de 28 de abril de 2023 (UTC)[responder]

@Stegop: MediaWiki:Common.css#L-850, mas não aparece em negrito por aqui. Seria interessante saber qual fonte dessa lista é exibida em seu navegador. No meu caso, é "Lucida Sans Unicode." ━ ALBERTOLEONCIO Who, me? 11h36min de 28 de abril de 2023 (UTC)[responder]
@Albertoleoncio: Obrigado. Eu tenho acho que tenho Lucida Sans e o facto é que aparece com aspeto de bold. --Stegop (discussão) 18h38min de 28 de abril de 2023 (UTC)[responder]

Mudança de Título de Página editar

Olá,

Solicito ajuda para a alteração do nome da página de Sabas, o Santificado para Savas, o Santificado, visto que a última é a forma mais correta do nome do Santo em português. O corpo do texto já foi devidamente atualizado.

Agradeço imensamente pela atenção e ajuda. Σανσαλάς (discussão) 17h42min de 10 de maio de 2023 (UTC)[responder]

@Σανσαλάς: vou tratar disso seguidamente, mas nas próximas vezes pode tentar fazê-lo você mesmo. As instruções estão em WP:MOVER. Exceto em casos muito óbvios, sugiro que antes de mover coloque a marca {{renomear página}} e aguarde pelo menos um par de semanas, pois dessa forma é mais provável que seja possível discutir a validade da moção antes dela ocorrer e diminui a probabilidade de conflitos devido a discordâncias. --Stego (discussão) 20h21min de 12 de maio de 2023 (UTC)[responder]

Automatic citations based on ISBN are broken editar

Apologies if this message does not reach you in your favorite language. You can help translate it centrally at Meta. Thanks for your help.

We have recently become unable to access the WorldCat API which provided the ability to generate citations using ISBN numbers. The Wikimedia Foundation's Editing team is investigating several options to restore the functionality, but will need to disable ISBN citation generation for now.

This affects citations made with the VisualEditor Automatic tab, and the use of the citoid API in gadgets and user scripts, such as the autofill button on refToolbar. Please note that all the other automatic ways of generating citations, including via URL or DOI, are still available.

You can keep updated on the situation via Phabricator, or by reading the next issues of m:Tech News. If you know of any users or groups who rely heavily on this feature (for instance, someone who has an upcoming editathon), I'd appreciate it if you shared this update with them.

Elitre (WMF), on behalf of the Editing team.

MediaWiki message delivery (discussão) 19h45min de 11 de maio de 2023 (UTC)[responder]

{Mais notas} por vezes adiciona linha em branco editar

Ver Predefinição Discussão:Mais notas#Linha em branco em baixo -- Stego (discussão) 20h12min de 12 de maio de 2023 (UTC)[responder]

Filtro para PDU de usuário falecido editar

Não sei se é a mhor página para isso, mas gostaria de saber se é possível criar um filtro que impeça avisos de eliminação (ou proibir qualquer tipo de edição mesmo) na página Usuário(a) Discussão:Kaktus Kid. Mesmo com a proteção para administradores, avisos de eliminação ainda estão sendo colocados com certa frequência e precisam ser removidos manualmente. Skyshifter disc. 01h00min de 21 de maio de 2023 (UTC)[responder]

@Skyshifter, isso deve ser suficiente. Os avisos não aparecerão e podem ser removidos periodicamente, já que parece ser algo inevitável. —Teles «mensagem ˱C L @ S˲» 03h24min de 21 de maio de 2023 (UTC)[responder]
@Skyshifter @Teles Criei o filtro 191 destinado a finalidade de impedir avisos a usuários falecidos. !Silent (discussão) 03h12min de 29 de maio de 2023 (UTC)[responder]

Predefinição:AFG editar

As bandeiras de 1974, 1978 e 1987 na Predefinição:AFG estão com problemas, aparecendo como [[File:|22x20px|border |alt=|link=]] Afeganistão. Podem ar uma olhada? Erick Soares3 (discussão) 17h31min de 26 de maio de 2023 (UTC)[responder]

FastButtons aparentemente morreu editar

Alguém tem notícias? Augusto Resende (discussão) 19h03min de 26 de maio de 2023 (UTC)[responder]

Aqui também, nos três navegadores mais usados (Firefox, Edge, Chrome). YANGUASdiz!-fiz 19h11min de 26 de maio de 2023 (UTC)[responder]
Já identifiquei que foi o último release do MediaWiki que removeu o jquery.tipsy que o FastButtons precisa, e já tava depreciado a uns anos.
@!Silent: e @Danilo.mac: acho que precisamos de vocês rs. Augusto Resende (discussão) 19h24min de 26 de maio de 2023 (UTC)[responder]
@Albertoleoncio: chega aí. YANGUASdiz!-fiz 20h52min de 26 de maio de 2023 (UTC)[responder]
Ele já tá sabendo, avisei no Telegram. Ele está no celular e não consegue mexer nessas coisas agora. Augusto Resende (discussão) 20h54min de 26 de maio de 2023 (UTC)[responder]
@Yanguas e AugustoResende: Simplesmente o melhor gadget fora do ar. 😳 Patrick 💬 20h59min de 26 de maio de 2023 (UTC)[responder]
@Pgnm Pra min também afetou comigo. Vitorperrut555 (Fala comigo!) 21h18min de 26 de maio de 2023 (UTC)[responder]
@AugustoResende @Pgnm @Vitorperrut555 @Yanguas   Resolvido.[1] Caso não volte logo de cara, sugiro limpar o cache do navegador e/ou aguardar um pouco. !Silent (discussão) 21h34min de 26 de maio de 2023 (UTC)[responder]
  Obrigados! YANGUASdiz!-fiz 14h08min de 27 de maio de 2023 (UTC)[responder]

O Fastbutton sumiu do nada!!! editar

O que aconteceu com a função Fastbutton?. eu sempre uso essa ferramenta para criar pedidos de bloqueio, marcação de eliminação e dar avisos de boas-vindas ao novatos e também uso pra dar aviso de nome improprio, ele simplesmente sumiu do nada, aconteceu comigo no Firefox no Linux Ubuntu. --Vitorperrut555 (Fala comigo!) 21h16min de 26 de maio de 2023 (UTC)[responder]

Lê a thread acima. Augusto Resende (discussão) 21h16min de 26 de maio de 2023 (UTC)[responder]
@AugustoResende Já to lendo. Vitorperrut555 (Fala comigo!) 21h19min de 26 de maio de 2023 (UTC)[responder]
@AugustoResende @Vitorperrut555   Resolvido.[2] Caso não volte logo de cara, sugiro limpar o cache do navegador e/ou aguardar um pouco. !Silent (discussão) 21h34min de 26 de maio de 2023 (UTC)[responder]
@!Silent: É bom ver que isso está sendo resolvido.
Pra mim também ocorreu a mesma coisa, e só descobri agora vendo ese tópico aqui no café.
No meu caso vou aguardar para ver se volta, já teve vez que limpei os dados do meu navegador e estranhamente não fez login automaticamente em outras plataformas do Wikimedia, enfim, aguardar sempre é bom, e não faz mal. Elder Nauvirth (discussão) 21h44min de 26 de maio de 2023 (UTC)[responder]
PS: Enquanto respondia aqui, o meu voltou. Elder Nauvirth (discussão) 21h45min de 26 de maio de 2023 (UTC)[responder]
@Elder N @AugustoResende Pra min também voltou ao normal, finalmente. Vitorperrut555 (Fala comigo!) 21h49min de 26 de maio de 2023 (UTC)[responder]
O meu também voltou. Valeu Silent! Patrick 💬 21h59min de 26 de maio de 2023 (UTC)[responder]
Fiz a limpeza de cache, mas o meu não voltou: :( Manope2011 Posso ajudar? 04h08min de 26 de dezembro de 2023 (UTC)[responder]
Fui em preferências/Aparência e escolhi Vector(prever) e está aparecendo.   Valeu! Manope2011 Posso ajudar? 20h47min de 26 de dezembro de 2023 (UTC)[responder]

CleanDeleteReasons parou de funcionar editar

Notei hoje que o gadget CleanDeleteReason parou de funcionar. O texto continua a aparecer, exceto ao eliminar ficheiros. —Teles «mensagem ˱C L @ S˲» 02h28min de 3 de junho de 2023 (UTC)[responder]

@Teles   Corrigido. [3] !Silent (discussão) 21h21min de 3 de junho de 2023 (UTC)[responder]
@!Silent, obrigado! Testei e ta funcionando. —Teles «mensagem ˱C L @ S˲» 03h54min de 4 de junho de 2023 (UTC)[responder]

Lançamento da Lista de desejos tecnológicos da lusofonia editar

 

Olá, pessoal!

Está sendo lançada hoje a Lista de desejos tecnológicos da lusofonia, uma consulta que busca entender quais são as inovações tecnológicas e quais são as ferramentas e plataformas que poderiam ser modificadas para melhorar a experiência de quem lê, edita e pesquisa os projetos Wikimedia em português. A lista é o primeiro passo em um processo a médio e longo prazo de inovação nos projetos Wikimedia e melhoria da experiência dos(as) usuários(as). A ideia é que problemas técnicos do cotidiano e inovações tecnológicas, independente do tamanho ou complexidade, sejam enviados e discutidos entre 5 e 25 de junho para depois serem votados e priorizados. Todas as sugestões e propostas são bem-vindas! A lista é um projeto colaborativo organizado pelo Wiki Movimento Brasil e pela Wikimedia Portugal, com apoio de outros grupos da lusofonia.

Tivemos uma transmissão hoje para explicar melhor o projeto, clique aqui para assistir. Acho que a participação do pessoal que vigia e participa dessa página seria muito importante!


Participe!


Abraços, --EPorto (WMB) (discussão) 00h13min de 6 de junho de 2023 (UTC)[responder]

Predefinição Hopman editar

Criei o Predefinição:Hopman, em que {{hopman|BRA}} gera   Brasil, mas quero que resulte em uma ligação interna diferente: no lugar de Brasil na Copa Hopman, preciso que seja Equipe do Brasil na Copa Hopman. O primeiro problema, que não consigo resolver, é inserir Equipe do e na entre os outros termos. O segundo é que esse do possa variar também entre de e da, pois há países que demandam outros artigos, como (de) Gana e (da) Austrália, respectivamente. Alguém consegue me ajudar? A prioridade é o primeiro, senão terei que trabalhar com XXX na Copa Hopman. O segundo, se houver resolução, consigo criar um paliativo. Rafaelfdc (discussão) 19h45min de 11 de junho de 2023 (UTC)[responder]

@Rafaelfdc: Pode usar algo assim: {{Flagdeco|{{{1}}}}} [[Equipe {{gênero do país|{{{1}}}|do}} na Copa Hopman|{{{1}}}]]. Danilo.mac(discussão) 21h34min de 11 de junho de 2023 (UTC)[responder]
Correção, isso só funciona com o nome por extenso, e não encontrei outra predefinição que ajude a fazer isso, então acho que a solução seria criar uma {{Hopman/core}} semelhante à {{Flaglink/core}} mas que use o link da forma como você quer. Danilo.mac(discussão) 21h43min de 11 de junho de 2023 (UTC)[responder]
Pior que foi eu que criei essa Flaglink/core, lá em 2014 (provavelmente copiei de outro lugar). Esse formato não serve para o meu caso, pois vou lidar com variações de bandeiras. Então, funcionaria em {{flaglink|SRB|Equipe da Sérvia na Copa Hopman}}, mas não em {{flaglink|SRB|2004|Equipe da Sérvia na Copa Hopman}}. Isso depois de configurar para aparecer os trechos na ordem desejada. E ainda vai ficar muito grande; a intenção é deixar enxuto e prático. Na Wiki anglófona funciona certinho nos torneios de tênis por equipes, mas lá eles não têm variação de gênero e a ordem dos termos é conveniente, sem precisar quebrar a cabeça, ao estilo en:Australia Davis Cup team. Rafaelfdc (discussão) 22h59min de 11 de junho de 2023 (UTC)[responder]

Por que este gadget parou de exibir as sugestões de eliminação? Francisco (discussão) 13h18min de 17 de junho de 2023 (UTC)[responder]

@!Silent e Albertoleoncio: Esse problema só ocorreu em ações de eliminação. Em ações de bloqueio e proteção, funciona normalmente. Francisco (discussão) 23h19min de 24 de setembro de 2023 (UTC)[responder]
@Francisco Leandro:   Feito em 66661363]. ━ ALBERTOLEONCIO Who, me? 02h19min de 25 de setembro de 2023 (UTC)[responder]