User:Hotbot/listsince.js

From Homestar Runner Wiki

Jump to: navigation, search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Mozilla / Firefox: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac)
  • Safari: press Cmd-Option-E
  • IE: hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Konqueror: simply click the Reload button, or press F5
  • Opera users may need to completely clear their cache in Tools→Preferences.
function addListSinceLink() {
	var found=findNamespaceForm();
	if (!found) return;
	window.sinceLinkThen=+(new Date());
	var sp=document.createElement('span');
	sp.innerHTML='<a id="listSince" onclick="loadSincePage()" href="#">Changes since last load</a>';
	found.parentNode.insertBefore(sp,found.nextSibling);
}

function findNamespaceForm() {
	var forms=document.getElementsByTagName('form');
	for (var i=0; i<forms.length; ++i) {
		if (forms[i].innerHTML.indexOf('Namespace:')> -1) { return forms[i]; }
	}
	return null;
}

function listSinceUrl( ) {
	var then=window.sinceLinkThen;
	var days = ( +(new Date()) - then )/(1000 * 3600 * 24);
	var url=document.location.href.split('#')[0];
	if ( /[?&]days=/.test(url) ) return url.replace(/([?&]days=)[^?&]*/, '$1'+days);
	if (url.indexOf('?')==-1) url += '?'; else url += '&';
	return url + 'days=' + days;
}

window.loadSincePage=function() {
	var lk=document.getElementById('listSince');
	lk.href=listSinceUrl();
}
	
if (/[=\/]Special(%3[Aa]|:)Watchlist/.test(document.location.href)) {
	addOnloadHook(addListSinceLink);
}
Personal tools