User:Gary/mark todays edits.js

/*	MARK TODAY'S EDITS Description: Marks edits on contributions pages that were made today.

if (typeof(unsafeWindow) != 'undefined') {	mw = unsafeWindow.mw; }

$(markTodaysEdits); function markTodaysEdits {	if (!mw.config.get('wgPageName').match('Special:Contributions') && mw.config.get('wgAction') != 'history') return false; var today = new Date; var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; var firstMatchedNode, lastMatchedNode; var maxTime = 1000 * 60 * 60 * 24; $('#bodyContent ul:last').children.each(function	{		var edit = $(this);		if (edit[0].nodeType == 3) return true;		if (edit.contents.length <= 3) edit = edit.children.first;		if (mw.config.get('wgPageName').match('Special:Contributions')) var date = new Date(edit.children.first.text);		else if (mw.config.get('wgAction') == 'history') var date = new Date(edit.children.eq(3).text);		// Revision's date is less than 24 hours		if ((today.getTime - date.getTime) < maxTime)		{			if (firstMatchedNode) lastMatchedNode = edit;			else firstMatchedNode = lastMatchedNode = edit;		}	}); if (firstMatchedNode && lastMatchedNode) {		if (mw.config.get('wgPageName').match('Special:Contributions')) {			firstMatchedNode = firstMatchedNode.children.first; lastMatchedNode = lastMatchedNode.children.first; }		else if (mw.config.get('wgAction') == 'history') {			firstMatchedNode = firstMatchedNode.children.eq(3); lastMatchedNode = lastMatchedNode.children.eq(3); }		var firstColorRatio = calculateColorRatio(maxTime, 70, 95, new Date(firstMatchedNode.text)); var lastColorRatio = calculateColorRatio(maxTime, 70, 95, new Date(lastMatchedNode.text)); firstMatchedNode.css('background-color', 'rgb(' + firstColorRatio + '%, ' + firstColorRatio + '%, 100%)'); lastMatchedNode.css('background-color', 'rgb(' + lastColorRatio + '%, ' + lastColorRatio + '%, 100%)'); } }

function calculateColorRatio(maxTime, minPercentage, maxPercentage, timestamp) {	var today = new Date; minPercentage = minPercentage / 100; maxPercentage = maxPercentage / 100; var colorRatio = ((maxPercentage - minPercentage) * (1 - (today.getTime - timestamp.getTime) / maxTime) + minPercentage) * 100; if (colorRatio < minPercentage) colorRatio = minPercentage; return colorRatio; }