User:Novem Linguae/Scripts/WatchlistAFD.js

//

/* - When you AFC accept or NPP "mark as reviewed", this script automatically adds the AFD PAGES of the reviewed page to your watchlist for 6 months - This is so that you can see if a page you accept or mark as reviewed gets AFDd. You can then use this information to calibrate and improve your reviewing. - Additionally, also adds a "Watchlist AFD" option to the More menu, that you can click on for any article.

- Bonus featured: Adds "Watchlist RFA" and "Watchlist SPI" to user pages.

$( function {	async function addToWatchlist( title, watchForever = false ) {		const apiObject = {			url: mw.util.wikiScript( 'api' ),			type: 'POST',			dataType: 'json',			data: {				format: 'json',				action: 'watch',				expiry: '6 months',				titles: title,				token: mw.user.tokens.get( 'watchToken' )			}		};		if ( watchForever ) {			delete apiObject.data.expiry;		}		const debugInfo = await $.ajax( apiObject );		return debugInfo;	}

function getTitleWithoutNamespace { let title = mw.config.get( 'wgPageName' ); title = title.replace( /^.*?:/, '' ); // strip all namespaces return title; }

function getTitleWithoutSubpages( title ) { title = title.replace( /\/.*$/, '' ); // strip all subpages return title; }

// add options to More menu const namespace = mw.config.get( 'wgNamespaceNumber' ); const isUserPage = ( [ 2, 3 ].includes( namespace ) ); const isArticleOrDraft = ( [ 0, 1, 118, 119 ].includes( namespace ) ); if ( isArticleOrDraft ) { mw.util.addPortletLink(			'p-cactions',			'#',			'Watchlist AFD',			'WatchlistAFD'		); }	if ( isUserPage ) { mw.util.addPortletLink(			'p-cactions',			'#',			'Watchlist RFA',			'WatchlistRFA'		); mw.util.addPortletLink(			'p-cactions',			'#',			'Watchlist SPI',			'WatchlistSPI'		); }

// listen for More menu clicks $( '#WatchlistAFD' ).on( 'click', async function {		const title = getTitleWithoutNamespace;		await addToWatchlist( 'Wikipedia:Articles for deletion/' + title );		mw.notify( 'Added AFD to watchlist.' );	} ); $( '#WatchlistRFA' ).on( 'click', async function {		let title = getTitleWithoutNamespace;		title = getTitleWithoutSubpages( title );		await addToWatchlist( 'Wikipedia:Requests for adminship/' + title, true );		mw.notify( 'Added RFA to watchlist.' );	} ); $( '#WatchlistSPI' ).on( 'click', async function {		let title = getTitleWithoutNamespace;		title = getTitleWithoutSubpages( title );		await addToWatchlist( 'Wikipedia:Sockpuppet investigations/' + title, true );		mw.notify( 'Added SPI to watchlist.' );	} );

// listen for AFC accept $( 'body' ).on( 'DOMNodeInserted', '.accept #afchSubmitForm', function {		$( '.accept #afchSubmitForm' ).on( 'click', function  { let title = mw.config.get( 'wgPageName' ); title = title.replace( /^Draft:/, '' ); addToWatchlist( 'Wikipedia:Articles for deletion/' + title ); } );	} );

// listen for NPP mark as reviewed $( 'body' ).on( 'DOMNodeInserted', '#mwe-pt-mark-as-reviewed-button', function {		$( '#mwe-pt-mark-as-reviewed-button' ).on( 'click', function  { const title = mw.config.get( 'wgPageName' ); addToWatchlist( 'Wikipedia:Articles for deletion/' + title ); } );	} ); } );

//