User:UBX/LiveEditCounter.js

Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// Based on [[User:Henrik/js/live-edit-counter]]
function liveEditCounter(username) {
    if (!document.getElementById('edit-count-id') || !document.getElementById('edit-count-info'))
        return;
    var count="";
    if (mw.config.get('wgUserName') == mw.config.get('wgTitle')) // If a user is viewing their own page, the data has already been loaded, no need to make a XHR
    {
        count = mw.config.get('wgUserEditCount');
    } else {
        var xhr;
        try { xhr = new XMLHttpRequest();
        } catch(e) {
            xhr = new ActiveXObject(Microsoft.XMLHTTP);
        }

        xhr.onreadystatechange  = function() {
            if(xhr.readyState  == 4) {
                if(xhr.status  == 200) {
                    var doc = xhr.responseXML;
                    count = doc.getElementsByTagName('user')[0].getAttribute('editcount')
                }
            }
        };

        xhr.open('GET', "http://en.wikipedia.org/w/api.php?action=query&list=users&usprop=editcount&format=xml&ususers="+username, true);
        xhr.send(null);
    }
    if(!count) count="0"; // Cater to zero edit counts
    count = (count+'').replace(/(?=(?:\d{3})+$)(?!^)/g, ','); // Add commas as thousand separators (hat tip to http://jsperf.com/number-format)
    $('#edit-count-id').text(count); // Update "icon"
    $('#edit-count-info').text(count); // Update text
}

$(function() {
  if ($.inArray(mw.config.get('wgCanonicalNamespace'), ["User" , "User_talk"]) !== -1) {
     var username = encodeURIComponent( mw.config.get('wgTitle').split("/")[0] );
     liveEditCounter(username);
  }
});
Retrieved from "https://en.wikipedia.org/w/index.php?title=User:UBX/LiveEditCounter.js&oldid=698385019"