User:DannyS712/Draft no cat.js

// Install with: // // or with //  // // Includes contributions by User:BrownHairedGirl // If forking this script, please note our contributions / give us credit $( => { const DraftNoCat = {}; window.DraftNoCat = DraftNoCat; DraftNoCat.config = {	name: 'Draft no cat',	version: 1.8,	debug: false };

DraftNoCat.summary = "Disable the categories on this page while it is still a draft, per WP:DRAFTNOCAT/WP:USERNOCAT" + ' (using ' + DraftNoCat.config.name + " v" + DraftNoCat.config.version + ")." +	" The easiest way to do this is by converting them to links, by adding a colon: \"[[Category:\" → \"[[:Category:\""; DraftNoCat.run = function {	var editSummary = DraftNoCat.summary;	// if this is user page, add a ping to the user	if ( mw.config.get( 'wgNamespaceNumber' ) === 2) {		var username = mw.config.get( 'wgRelevantUserName' );		editSummary = '@[[User:' + username + '|' + username + ']]: ' + editSummary;	}	if ( DraftNoCat.config.debug ) {		console.log ( editSummary );	}	var api = new mw.Api;	api.get( {		action: 'query',		titles: mw.config.get( 'wgPageName' ),		prop: 'revisions',		rvprop: 'content',		rvslots: 'main',		formatversion: 2	} ).done(		function ( response ) {			console.log( response );			var text = response.query.pages[0].revisions[0].slots.main.content;			var newText = text				.replace( /\[\[\s*Category:/gi, '\[\[:Category:' ); // Replace categorization with links

api.postWithEditToken( {				action: 'edit',				title: mw.config.get( 'wgPageName' ),				text: newText,				summary: editSummary,				minor: true			} ).done(				function {					location.reload;				}			); }	); };

});

$( document ).ready( => {	if ( mw.config.get( 'wgNamespaceNumber' ) === 2 || mw.config.get( 'wgNamespaceNumber' ) === 118 ) {		mw.loader.using( [ 'mediawiki.util' ], function { var link = mw.util.addPortletLink( 'p-cactions', '#', 'DNC', 'ca-dnc', 'Draft no cats'); $( link ).click( function ( event ) {					event.preventDefault;					mw.loader.using( 'mediawiki.api', window.DraftNoCat.run );				} ); }		);	} } );