User:DannyS712 test/copycat.js

// $(function { var CC_config = {	name: 'Copy categories.js',	version: 1.0,	debug: true }; var CC_summary = 'Correct name parameter with ' + CC_config.name + ' (version ' + CC_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)', 'Copy categories', 'cat-copy', 'TOOLTIP'); $('#cat-copy').on('click', function {       	Copy_categories;    	} ); } ); } ); function Copy_categories{ var name = mw.config.get( 'wgPageName' ); var base_page = name.replace(/Portal:/, ""); var base_categories = get_cats ( base_page ); if (CC_config.debug) console.log ( base_categories ); var current_portal = get_page( name ); if (CC_config.debug) console.log ( current_portal ); //set_new ( name, new_page ); } function get_cats( name ){ var page_to_get = { action: 'query', titles: name, prop: 'categories', cllimit: 'max', clshow: '!hidden', format: 'json', formatversion: 2 };   var result = null; $.ajax({		url: scriptUrl,		type: 'get',		data: page_to_get,		dataType: 'json',		async: false,		success: function(cats) {			if (CC_config.debug) console.log( cats );			var partial_result = cats.query.pages["0"].categories;			var categories = [];			for (var iii = 0; iii < partial_result.length; iii++){				categories.push(partial_result[iii].title);			}			console.log( categories );			result = categories;		} 	}); return result; } 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 (CC_config.debug) console.log( page );	   	result = page.query.pages["0"].revisions["0"].content;	    	if (CC_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, minor: true, summary: CC_summary, token: mw.user.tokens.get( 'csrfToken' ) };   console.log( to_send ); $.when(       $.post( scriptUrl, to_send, function( response ){ } )    ).done( function {		location.reload;    } ); } }); //