Ir para o conteúdo

MediaWiki:Common.js

De Guia Galáctico
Revisão de 21h50min de 11 de julho de 2026 por Admin (discussão | contribs) (Created page with "Any JavaScript here will be loaded for all users on every page load.: /** * GUIA GALÁCTICO — Estatísticas da Sporepédia (Spore-o-Meter) * Cole em MediaWiki:Common.js * * Busca os dados via proxy CORS e preenche a faixa .gg-stats * da página inicial. Se a API falhar, a faixa é escondida * (classe .gg-stats--erro, tratada no CSS) — a página segue * funcionando normalmente sem ela. * * Resposta esperada da API: * { currentAssetCount, totalAssetCount...")
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
  • Opera: Pressione Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
/**
 * GUIA GALÁCTICO — Estatísticas da Sporepédia (Spore-o-Meter)
 * Cole em MediaWiki:Common.js
 *
 * Busca os dados via proxy CORS e preenche a faixa .gg-stats
 * da página inicial. Se a API falhar, a faixa é escondida
 * (classe .gg-stats--erro, tratada no CSS) — a página segue
 * funcionando normalmente sem ela.
 *
 * Resposta esperada da API:
 * { currentAssetCount, totalAssetCount, dayAssetCount,
 *   totalUsers, dayUsers }
 */
(function () {
  'use strict';

  var faixa = document.querySelector('.gg-stats');
  if (!faixa) {
    return; // não estamos na página inicial
  }

  var API =
    'https://cross.esporo.net/corsproxy/?apiurl=' +
    encodeURIComponent('https://spore-o-meter.sporecommunity.com');

  function formatar(n) {
    return Number(n).toLocaleString('pt-BR');
  }

  function preencher(classe, valor) {
    document.querySelectorAll('.' + classe).forEach(function (el) {
      el.textContent = formatar(valor);
    });
  }

  fetch(API)
    .then(function (r) {
      if (!r.ok) {
        throw new Error('HTTP ' + r.status);
      }
      return r.json();
    })
    .then(function (dados) {
      preencher('gg-stat-acervo', dados.currentAssetCount);
      preencher('gg-stat-total', dados.totalAssetCount);
      preencher('gg-stat-hoje', dados.dayAssetCount);
      preencher('gg-stat-criadores', dados.totalUsers);
      preencher('gg-stat-criadores-hoje', dados.dayUsers);
    })
    .catch(function (erro) {
      faixa.classList.add('gg-stats--erro');
      if (window.console && console.warn) {
        console.warn('[Guia Galáctico] Spore-o-Meter indisponível:', erro);
      }
    });
})();