Jump to content

User:Nthep/rescaled.js

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.
//Rescaled - based on both Legotkm and B//
if ( mw.config.get('wgNamespaceNumber') == 6 ) {
	mw.loader.using( ['mediawiki.util', 'mediawiki.api'], function() {
		var rescaled = mw.util.addPortletLink( 'p-cactions', '#',
			'rescaled', 'ca-rescaled', 'Rescaled per F5');
		$( rescaled ).click( do_it );
	});
}

function do_it() {
	var api = new mw.Api();
	api.get( {
		action: 'query',
		prop: 'imageinfo|revisions',
		titles: mw.config.get('wgPageName'),
		iiprop: 'archivename',
		iilimit: 'max',
		rvprop: 'content',
		rvlimit: '1'
	}).done( function ( data ) {
		var pgdata = data.query.pages[mw.config.get('wgArticleId')];
		var imgs = pgdata.imageinfo;
		console.log(imgs);
		var todelete = [];
		$.each( imgs, function ( index, value ) {
			if ( index === 0 || !value.hasOwnProperty( "archivename" ) ) {
				return;
			}
			todelete.push( value.archivename.split('!')[0] );
		});
		api.postWithToken( 'delete', {
			action: 'revisiondelete',
			type: 'oldimage',
			target: mw.config.get('wgPageName'),
			ids: todelete.join('|'),
			hide: 'content',
			reason: 'Orphaned non-free file(s) deleted per [[WP:F5|F5]]'
		}).done( function( data ) {
				mw.notify("Deleted old revision.");
		});

		// Also edit!
		var text = pgdata.revisions[0]['*'];
		// modified by Legoktm from drilnoth's script
		text = text.replace(/\n*\{\{\s?(Non\-free reduced|Orphaned non\-free revisions)\s?\|.*?\}\}/ig,'');
		text = text.trim();
		api.postWithToken( 'edit', {
			action: 'edit',
			title: mw.config.get('wgPageName'),
			summary: 'Previous version(s) deleted per [[WP:F5|F5]])',
			text: text
		}).done( function ( data ) {
			mw.notify("Removed the template."); setTimeout(function() { window.location.reload();}, 3000);
		});

	});
}