User:Awesome Aasim/rcnotify.js

if (mw.config.get("wgPageName").toLowerCase == "Special:RecentChanges".toLowerCase) { //sends notifications on every new bad edit var RCNotify = {}; $.get(mw.config.get("wgScriptPath") + "/api.php", {		"action": "query",		"format": "json",		"list": "recentchanges",		"rcnamespace": "0|3",		"rcprop": "title|timestamp|flags|loginfo|oresscores|parsedcomment|user|ids|tags",		"rcshow": "oresreview",		"rctoponly": true,		"rclimit": "1",		"rctype": "edit|new"	}).done(function(result) {		RCNotify.oldedit = result.query.recentchanges[0].revid;		if (Notification.permission !== 'granted') {			Notification.requestPermission;			if (Notification.permission != 'granted') {				mw.notify("RC Notification alert: Please enable notifications on your browser to get notified every time an edit needing review is made.");			}		}		RCNotify.fetch;	}); RCNotify.notifications = []; RCNotify.revids = []; RCNotify.fetch = function { $.get(mw.config.get("wgScriptPath") + "/api.php", {			"action": "query",			"format": "json",			"list": "recentchanges",			"rcnamespace": "0|3",			"rcprop": "title|timestamp|flags|loginfo|oresscores|parsedcomment|user|ids|tags",			"rcshow": "oresreview",			"rctoponly": true,			"rclimit": "1",			"rctype": "edit|new"		}).done(function(result) {			if (RCNotify.oldedit < result.query.recentchanges[0].revid) {				RCNotify.oldedit = result.query.recentchanges[0].revid;				RCNotify.revids.push(result.query.recentchanges[0].revid);				RCNotify.notifications.push(new Notification("New recent change to " + mw.config.get("wgSiteName") + " needs review", {					body: result.query.recentchanges[0].user + " made a potentially problematic edit to \"" + result.query.recentchanges[0].title + "\". Click to review."				}));				RCNotify.notifications[RCNotify.notifications.length-1].onclick = function {					console.log(this); var revindex = RCNotify.notifications.indexOf(this); window.open(location.origin + "/wiki/Special:Diff/" + RCNotify.revids[revindex]); this.close; // focus our tab and close notif };			}			window.setTimeout(RCNotify.fetch, 1000); });	}; }