User:This, that and the other/afdlog.js

// This script is a bookmarklet. You can make it into a // bookmarklet using http://ted.mielczarek.org/code/mozilla/bookmarklet.html // and then run the bookmarklet on any WP page.

if (typeof mw === "undefined") { alert("You must be on a Wikipedia page for this to work."); return; } mw.loader.using(["ext.gadget.Twinkle"], function {	window.afdlog = {};	window.afdlog.fetchContribs = function(ucstart) {		var api = new Wikipedia.api("action", { 'action': 'query', 'rawcontinue': '', 'list': 'usercontribs', 'uclimit': 500, 'ucuser': wgUserName, 'ucnamespace': 4, 'ucprop': 'title|flags|timestamp', 'ucstart': ucstart }, window.afdlog.contribsCallback);		api.post;	};	window.afdlog.contribResults = [];	window.afdlog.contribResultsIndex = 0;	window.afdlog.contribsCallback = function(apiResult) {		var $doc = $(apiResult.responseXML);		$doc.find('item[new=""][title^="Wikipedia:Articles for deletion/"]').each(function { var $this = $(this); var ts = new Date($this.attr("timestamp")).toUTCString; var title = $this.attr("title").substring(32).replace(/ \([0-9]+[nrst][dht] nomination\)$/, ""); if (title.indexOf("Log/2") !== 0) { window.afdlog.contribResults.push({ ts: ts, title: title, afd: $this.attr("title") }); }		});		var $ctn = $doc.find("query-continue usercontribs");		if ($ctn.length) {			window.afdlog.fetchContribs($ctn.attr("ucstart"));		} else {			window.afdlog.fetchPage;		}	};	window.afdlog.fetchPage = function {		var sect = window.afdlog.contribResults.slice(window.afdlog.contribResultsIndex, window.afdlog.contribResultsIndex + 19);		var titles = [];		$.each(sect, function(k, v) { titles.push(v.title); });		var api = new Wikipedia.api("action", { 'action': 'query', 'prop': 'info', 'titles': titles.join("|") }, window.afdlog.pageCallback);		api.post;	};	window.afdlog.pageCallback = function(apiResult) {		$(apiResult.responseXML).find("page").each(function { var $this = $(this); var newarr = window.afdlog.contribResults.filter(function(v) { 				return v.title === $this.attr("title");			}); newarr[0].exists = $this.attr("missing") !== ""; });		window.afdlog.contribResultsIndex += 20;		if (window.afdlog.contribResultsIndex >= window.afdlog.contribResults.length) {			window.afdlog.$ol.empty;			$.each(window.afdlog.contribResults, function(k, v) { window.afdlog.$ol.append($('' + v.ts + ': ' + v.title + ' was nominated for AfD')); });			window.afdlog.$ol.css({'margin-left': '10px', 'padding-left': '34px'});		} else {			window.afdlog.fetchPage;		}	};	window.afdlog.$ol = $('Please wait... (may take several minutes)');	window.afdlog.$ol.dialog({width: 900, height: 480, title: 'Your AfD nominations'});	window.afdlog.fetchContribs; });