Gebruiker:Effeietsanders/watchlisttracker.js

Opmerking: na het publiceren moet je misschien je browsercache legen om de veranderingen te zien.

  • Firefox / Safari: houd Shift ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
  • Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
  • Edge: houd Ctrl ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5.
//<pre>
/*****************************************************************************************
 NL.WIKIPEDIA WATCHLIST TRACKER
 (C)2006 Valhallasw
 Licenced under GPL. Please add [[nl:Gebruiker:Valhallasw]] when you use it in other scripts.

 Usage: Put

 document.write('<script type="text/javascript" src="'
           + 'http://nl.wiki.x.io/w/index.php?title=Gebruiker:Valhallasw/watchlisttracker.js'
           + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

 in your monobook.js

 FOR USE ON OTHER WIKIPEDIA PROJECTS EDITING IS REQUIRED (hardcoded nl.wikipedia links etc)
*****************************************************************************************/

// Load dependencies
// cross-browser XML reader
document.write('<script type="text/javascript" src="'
        + 'http://nl.wiki.x.io/w/index.php?title=Gebruiker:Valhallasw/importxml.js'
        + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// Cookie manipulate functions
document.write('<script type="text/javascript" src="'
        + 'http://nl.wiki.x.io/w/index.php?title=Gebruiker:Valhallasw/cookies.js'
        + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

var oldonload = window.onload; 
window.onload = function() {
      oldonload();
      mainWatchlistTracker();
    };

function mainWatchlistTracker() {

//haal datum op
var now = new Date();
var expiredate = new Date();
expiredate.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); // 1 jaar

if ((document.location == "http://nl.wiki.x.io/wiki/Speciaal:Watchlist") || (document.location.toString().indexOf("http://nl.wiki.x.io/w/index.php?title=Speciaal:Watchlist") != -1)) {
	//clear boxkoekje
	deleteCookie("watchlistShowBox", "/");

	//(re)set last visit cookie
	setCookie("watchlistLastVisit", now, expiredate, "/");
} else {
	//haal koekjes op
	var lastVisit = getCookie("watchlistLastVisit");
	var lastCheck = getCookie("watchlistLastCheck");

	var showBox = getCookie("watchlistShowBox");
	doShowBox(showBox);

	if (!showBox) {
		// niet geset
		// check of er niet al minder dan een minuut geleden is gecheckt
		if (lastCheck) var lastCheckDate = Date.parse(lastCheck);
		if (lastVisit) { //alleen als lastVisit bestaat is de opzoekactie zinvol
			if ((!lastCheck) || (now - lastCheckDate) > 10) {  // THIS SETS THE MINIMUM TIME BETWEEN WATCHLIST CHECKS
				setCookie("watchlistLastCheck", now, expiredate, "/");
				var lastVisitDate = Date.parse(lastVisit);
				var watchlistURL = "http://nl.wiki.x.io/w/index.php?title=Speciaal:Watchlist&days="+((((now - lastVisitDate)/1000)/3600)/24).toString();
				importXML(watchlistURL,'processWatchlist');

			}

		} else { //(anders dumpen we die box er gewoon ;))
			setCookie("watchlistShowBox", 1, expiredate, "/");
			doShowBox(1);
		}
	}
}
}

function doShowBox(show) {
	if (show) {
		var siteSub = document.getElementById("siteSub");
		var newStuff = document.createElement("table");
		newStuff.setAttribute("align","center");
		newStuff.setAttribute("class","usermessage");
		newStuff.setAttribute("width","100%");
		newStuff.innerHTML = "<tr><td>Er is een wijziging op uw <a href='http://nl.wiki.x.io/wiki/Speciaal:Watchlist'>volglijst</a>!</td></tr>"
		var parentDiv = siteSub.parentNode;
		parentDiv.insertBefore(newStuff, siteSub);
	}
}

function processWatchlist(xmlDoc) {
	var now = new Date();
	var expiredate = new Date();
	expiredate.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); // 1 jaar

	//var images = xmlDoc.document.getElementsByTagName("img");
      var images = xmlDoc.getElementsByTagName("img") // test, firefox fix, hopelijk werkt het in opera
	for(i=0;i<images.length;i++) {
		if (images[i].getAttribute("src") == "/skins-1.5/common/images/Arr_.png") {
			setCookie("watchlistShowBox", 1, expiredate, "/");
			doShowBox(1);
			break;
		}
	}
}

//</pre>