MediaWiki:Gadget-ContadorPaginas.js

De Wiki Calamity Mod Oficial
Ir a la navegación Ir a la búsqueda
Limpiar la caché

Nota: Después de guardar, quizás necesites actualizar la caché de tu navegador para ver los cambios.

  • Firefox/Safari: Mantén presionada la tecla Mayús mientras pulsas el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presiona Ctrl+Shift+R (⌘+Mayús+R en Mac)
  • Microsoft Edge: presiona la combinación Ctrl+Shift+R
  • Opera: vacía la caché en Herramientas → Preferencias
function fetchData(callback) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'https://calamitymod.wiki.gg/es/api.php?action=query&format=json&meta=siteinfo&siprop=statistics', true);
  xhr.onreadystatechange = function () {
    if (xhr.readyState === XMLHttpRequest.DONE) {
      if (xhr.status === 200) {
        var data = JSON.parse(xhr.responseText);
        callback(null, data.query.statistics);
      } else {
        callback('Error al cargar los datos', null);
      }
    }
  };
  xhr.send();
}

function abbreviateNumber(num) {
  if (num >= 1000) {
    return (num / 1000).toFixed(1) + 'k';
  }
  return num;
}

function renderStats() {
  fetchData(function (error, stats) {
    if (error) {
      console.error(error);
      return;
    }

    var articleCount = abbreviateNumber(stats.articles);
    var editCount = abbreviateNumber(stats.edits);

    var statsPanel = document.createElement('div');
    statsPanel.classList.add('stats-panel');

    var articlesBox = document.createElement('div');
    articlesBox.classList.add('articles');
    articlesBox.innerHTML = '<span class="count">' + articleCount + '</span> <span class="label">páginas</span>';

    var editsBox = document.createElement('div');
    editsBox.classList.add('edits');
    editsBox.innerHTML = '<span class="count">' + editCount + '</span> <span class="label">ediciones</span>';

    statsPanel.appendChild(articlesBox);
    statsPanel.appendChild(editsBox);

    document.querySelector('#mw-panel').insertAdjacentElement('afterbegin', statsPanel);
  });
}

// Llama a la función para cargar y mostrar las estadísticas.
renderStats();