User:SD0001/deleted-metadata-link.js

// Link to deletedrevisions API output for deleted pages // And a link to snippet of deleted text for AFD/PROD/G13 deleted content $.ready.then(function {	if (mw.config.get('wgArticleId') === 0 && !!$('.mw-warning-with-logexcerpt:has(".mw-logline-delete")').length) {

var apiParams = { action: 'query', prop:'deletedrevisions', titles: mw.config.get('wgPageName').replace(/_/g, ' '), drvprop: 'user|timestamp|tags|size', drvlimit: 'max', formatversion: 2 };	   var link = '/w/api.php?' + $.param(apiParams); $('.mw-warning-with-logexcerpt:first').before(	       $(' ').addClass('deleted-metadata-link').append( 'See ', $('').attr('href', link).text('deleted revisions') )	   );	    mw.loader.using(['mediawiki.api', 'ext.gadget.morebits']).then(function {		    new mw.Api.get(apiParams).then(function(data) { var user = data.query.pages[0].deletedrevisions[0].user; var ts = new Morebits.date(data.query.pages[0].deletedrevisions[0].timestamp); $('.deleted-metadata-link').append(		   		': last edited by ',		    		$('').attr('href', '/wiki/User:' + encodeURIComponent(user)).text(user),		    		' at ' + ts.format('HH:mm, D MMMM YYYY') + ' (' + getTimeZoneString + ')'		    	); var $latestLogLine = $('.mw-logline-delete').first; if ($latestLogLine.length) { var $firstLinkInComment = $latestLogLine.find('.comment a').first; var date = parseLocalDate($latestLogLine.find('a').first.text); if (date.isValid) { if ($firstLinkInComment.is('[href^="/wiki/Wikipedia:Articles_for_deletion"]')) { getRevidLinkFromDate('User:SDZeroBot/AfD grid', date).then(function(link) {			   				$('.deleted-metadata-link').append(' Look up snippet in AfD grid');			    			}); } else if ($firstLinkInComment.is('[href^="/wiki/Wikipedia:PROD"]')) { getRevidLinkFromDate('User:SDZeroBot/PROD grid', date).then(function(link) {			   				$('.deleted-metadata-link').append(' Look up snippet in PROD grid');			    			}); } else if ($firstLinkInComment.is('[href^="/wiki/Wikipedia:Criteria_for_speedy_deletion#G13"]') || 			   			$firstLinkInComment.is('[href^="/wiki/Wikipedia:CSD#G13"]')) { getRevidLinkFromDate('User:SDZeroBot/G13 Watch', date, true).then(function(link) {			   				$('.deleted-metadata-link').append(' Look up snippet in G13 Watch');			    			}); }		   			}		    	}		    });	    });	} });

function parseLocalDate(dateText) { var date = new Morebits.date(dateText + ' (UTC)'); var userTimeZoneOffset = parseInt(mw.user.options.get('timecorrection').split('|')[1]); return date.subtract(userTimeZoneOffset, 'minutes'); }

function getTimeZoneString { var timecorrection = -new Date.getTimezoneOffset; var negative = false; if (timecorrection < 0) { timecorrection = -timecorrection; negative = true; }	return 'UTC' + (negative ? '–' : '+') + (timecorrection / 60); }

function getRevidLinkFromDate(page, date, postLog) { return new mw.Api.get({		titles: page,		prop: 'revisions',		rvstart: postLog ? date.add(1, 'day').toISOString : date.toISOString,		rvlimit: 1,		formatversion: 2	}).then(function(data) {		return data.query.pages[0].revisions[0].revid;	}).then(function(revid) {		return '/w/index.php?title=' + encodeURIComponent(page) + '&oldid=' + revid + 			'#:~:text=' + encodeURIComponent(Morebits.pageNameNorm); // jump to text in Chrome	}); }