Aller au contenu

Utilisateur:African Hope/Brouillon/Scripts/Historiques.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
function hrlDisplay(obj) {
  var hrlMonths = {"janvier": 0, "février": 1, "mars": 2, "avril": 3, "mai": 4,
    "juin": 5, "juillet": 6, "août": 7, "septembre": 8, "octobre": 9,
    "novembre": 10, "décembre": 11};
  var queryCont = obj['continue'];
  var patrolled = new Object();
  var actions = obj.query.logevents;
  var lastId = -1;
  var regExpId = new RegExp(/&oldid=(\d+)/);
  var regExpDate = new RegExp(/^(\d+) ([^ ]+) (\d+)/);
  var minDate = new Date(new Date() - 30 * 86400 * 1000); // Après c'est trop tard

  for (var i = 0; i < actions.length; i++) {
    lastId = actions[i].patrol ? actions[i].patrol.cur : actions[i].params.curid;
    patrolled[lastId] = 1;
  }

  var revs = document.getElementById("pagehistory").getElementsByTagName("li");
  var loopMax = revs.length - (mw.config.get("wgNamespaceNumber") == 6 ? 1 : 0);
  for (var i = 0; i < loopMax; i++) {
    var links = revs[i].getElementsByTagName("a");
    for (var j = 0; j < links.length; j++) {
      var match = regExpId.exec(links[j].href);
      if (match && links[j].href.indexOf("&diff=") == -1) {
        var oldid = parseInt(match[1]);
        match = regExpDate.exec(links[j].textContent);
        if (match && hrlMonths[match[2]] && (new Date(match[3], hrlMonths[match[2]], match[1])) < minDate) return;
        if (!patrolled[oldid] && (!queryCont || oldid >= lastId)) {
          var abbr = document.createElement('abbr');
          abbr.className = "unpatrolled";
          abbr.title = "Cette modification n’a pas été relue.";
          abbr.textContent = "!";
          links[j].parentNode.insertBefore(abbr, links[j])
          links[j].parentNode.insertBefore(document.createTextNode(' '), links[j]);
        }
        break;
      }
    }
  }
}

if (mw.config.get("wgAction") == "history") {
  $(function() {
    var query = {format: "json", action: "query", continue: "", list: "logevents", letype: "patrol",
                 leprop: "details", lelimit: 20, letitle: mw.config.get("wgPageName")};
    $.getJSON(mw.util.wikiScript("api"), query, hrlDisplay);
  });
}