Jump to content

User:Dudemanfellabra/diffs.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Dudemanfellabra (talk | contribs) at 20:50, 2 July 2010 (move diff script into separate page to cleanup vector.js). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
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.
function convertTimestampStringToDate(id) {
    var timestamp = document.getElementById(id).firstChild.firstChild.firstChild.nodeValue;
    var str = /evision as of /g
    str.lastIndex = 0;
    str.test(timestamp)
    return new Date(timestamp.substring(str.lastIndex));
}
 
function TimeBetweenDiffs() {
 
    if (!document.getElementById('mw-diff-otitle1') || !document.getElementById('mw-diff-ntitle1')) return;
 
    var leftNode = document.getElementById('mw-diff-otitle1');
    var rightNode = document.getElementById('mw-diff-ntitle1');
    var firstDate = convertTimestampStringToDate('mw-diff-otitle1');
    var secondDate = convertTimestampStringToDate('mw-diff-ntitle1');
 
    var timeDifference = secondDate - firstDate;
    var minutesAgo = Math.round(timeDifference / 1000 / 60);
    var hoursAgo = 0
    var daysAgo = 0
    var hoursText = 'hour'
    var daysText = 'day'
 
    while (minutesAgo >= 60) {
        minutesAgo = minutesAgo-60;
        hoursAgo++;
    }
 
    if (hoursAgo!=1)
        hoursText = hoursText + 's';
 
    while (hoursAgo >= 24) {
        hoursAgo = hoursAgo-24;
        daysAgo++;
    }
 
    if (daysAgo!=1)
        daysText = daysText + 's';
 
    if (daysAgo > 0) {
        if (hoursAgo > 0) {
            if (minutesAgo <=1 ) {
                minutesAgo = "(" + daysAgo + ' ' + daysText + ', ' + hoursAgo + ' ' + hoursText + ' later)';
            }
            else {
                minutesAgo = "(" + daysAgo + ' ' + daysText + ', ' + hoursAgo + ' ' + hoursText + ', ' + minutesAgo + ' minutes later)';
            }
        }
        else {
            if (minutesAgo <=1 ) {
                minutesAgo = "(" + daysAgo + ' ' + daysText + ' later)';
            }
            else {
                minutesAgo = "(" + daysAgo + ' ' + daysText + ', ' + minutesAgo + ' minutes later)';
            }
        }
    }
    else {
        if (hoursAgo > 0) {
            if (minutesAgo <=1 ) {
                minutesAgo = "(" + hoursAgo + ' ' + hoursText + ' later)';
            }
            else {
                minutesAgo = "(" + hoursAgo + ' ' + hoursText + ', ' + minutesAgo + ' minutes later)';
            }
        }
        else {
            if (minutesAgo <=1 ) {
                minutesAgo = '(Less than a minute later)';
            }
            else {
                minutesAgo = "(" + minutesAgo + ' minutes later)';
            }
        }
    }
 
    var newNode = document.createElement('span');
    newNode.setAttribute('style', 'font-weight:bold; color:red;')
    newNode.appendChild(document.createTextNode(minutesAgo));
    newNode.appendChild(document.createElement('br'));
 
    rightNode.insertBefore(newNode, rightNode.firstChild);
}
 
addOnloadHook(TimeBetweenDiffs);                               // Adds time between diffs