From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

// Install this version with:

// <code><nowiki>		{{subst:Iusc|User:DannyS712/De-Stub.js}}																		</nowiki></code>

// or with

// <code><nowiki>		importScript( 'User:DannyS712/De-Stub.js' ); // Backlink: [[User:DannyS712/De-Stub.js]] 						</nowiki></code> 

//

// If forking this script, please note my contributions / give me credit

$(function (){

var DS_config = {

	name: '[[User:DannyS712/De-Stub|De-Stub.js]]',

	version: 1.2,

	debug: false

};

var DS_summary = 'Remove stub template(s) with ' + DS_config.name + ' (version ' + DS_config.version + ')';

var scriptUrl = mw.config.get( 'wgScriptPath' ) + '/api.php';



mw.loader.using( 'mediawiki.util', function () {

    $(document).ready( function () { 

    	mw.util.addPortletLink ( 'p-cactions', 'javascript:void(0)', 'De-stub', 'ca-de-stub', 'Remove stub template(s)');

    	$('#ca-de-stub').on('click', function() {

        	de_stub();

    	} );

    } );

} );

function de_stub(){

	var name = mw.config.get( 'wgPageName' );

	var page = get_page ( name );

	if (DS_config.debug) console.log ( page );

	var new_page = page.replace(/\n*\{\{[0-9a-z\-]*stub\}\}/gi, "");

	if (DS_config.debug) console.log ( new_page );

	set_new ( name, new_page );

}

function get_page( name ){

    var page_to_get = {

        action: 'query',

        titles: name,

        prop: 'revisions',

        rvprop: 'content',

        format: 'json',

        formatversion: 2

    };

    var result = null;

	$.ajax({

		url: scriptUrl,

		type: 'get',

		data: page_to_get,

		dataType: 'json',

		async: false,

		success: function(page) {

			if (DS_config.debug) console.log( page );

	    	result = page.query.pages"0"].revisions"0"].content;

	    	if (DS_config.debug) console.log( result );

		} 

	});

	return result;

}

function set_new ( page, new_content ){

	console.log( page, new_content );

    var to_send = {

        action: 'edit',

        title: page,

        text: new_content,

        summary: DS_summary,

        token: mw.user.tokens.get( 'csrfToken' )

    };

    console.log( to_send );

    $.when(

        $.post( scriptUrl, to_send, function( response ){ } )

    ).done( function() {

		window.location = '//en.wikipedia.org/?title=' + encodeURIComponent( mw.config.get( 'wgTitle' ) ) + '&diff=cur&oldid=prev';

    } );

}

});