User:DannyS712 test/Outline bot.js

// $(function { var Outline_bot_config = {	name: 'Outline bot.js',	testing: false,	disclaimer: "Bot in trial (BRFA)",	version: 1.3,	debug: false };

var Outline_bot_summary = 'Task 20: Add a short description with ' + Outline_bot_config.name + ' (version ' + Outline_bot_config.version + ')'; if (Outline_bot_config.testing){ Outline_bot_summary = Outline_bot_config.disclaimer + ": " + Outline_bot_summary; }

mw.loader.using( 'mediawiki.util', function {	importScript( 'User:DannyS712 test/page.js' );    $(document).ready( function  { mw.util.addPortletLink ( 'p-cactions', 'javascript:void(0)', 'Outline bot', 'ca-outlineBot', 'Add a short description of this outline'); $('#ca-outlineBot').on('click', function {       	Outline_bot_run;    	} ); } ); } ); function Outline_bot_run{ var ar_of_pages = get_page_list( 'Category:Wikipedia_outlines', 0); if( Outline_bot_config.debug) console.log( ar_of_pages ); for (var jjj = 0; jjj < ar_of_pages.length; jjj++){ //if (jjj < 40) outline_run( ar_of_pages[jjj]); } } function outline_run( title ){ var regex = /Outline of (.*)/i; var match = regex.exec( title ); console.log( title, match ); if (match !== null){ var content = get_page( title ); if( Outline_bot_config.debug) console.log( content ); var already_has = false; if (content.toLowerCase.indexOf('{{short description\|') > -1) already_has = true; console.log( already_has ); if (!(already_has)){ if( Outline_bot_config.debug) console.log ( match ); var short_desc = "{{Short description|1=Overview of and topical guide to " + match[1] + "}}"; console.log ( short_desc ); var new_content = short_desc + "\n" + content; if( Outline_bot_config.debug) console.log( new_content ); set_new( title, new_content ); }	} } function get_page_list( category, current_depth ){ var get_pages = { action: 'query', list: 'categorymembers', cmlimit: 'max', cmtitle: category, cmprop: 'title', format: 'json' };   var result = null; $.ajax({		url: scriptUrl,		type: 'get',		data: get_pages,		dataType: 'json',		async: false,		success: function(catResponse) {	   	if( Outline_bot_config.debug) console.log( catResponse );			var pages = catResponse.query.categorymembers;			if( Outline_bot_config.debug) console.log( pages );			var good_pages = [];			var sub_cats = [];			for (var i = 0; i < pages.length; i++) {				if ( pages[i].ns === 0 ) {					var regex = /Outline of (.*)/i;					var match = regex.exec( pages[i].title);					if (match !== null) good_pages.push(pages[i].title);				}				else if (pages[i].ns === 14) {					sub_cats.push(pages[i].title);				}			}			if( Outline_bot_config.debug) console.log( good_pages );			if( Outline_bot_config.debug) console.log( sub_cats );			if (current_depth < 4){				for (var j = 0; j < sub_cats.length; j++){					good_pages = good_pages.concat( get_page_list(sub_cats[j], current_depth + 1)); }			}			result = good_pages; if( Outline_bot_config.debug) console.log( result ); } 	});	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( Outline_bot_config.debug) console.log( page ); result = page.query.pages["0"].revisions["0"].content; if( Outline_bot_config.debug) console.log( result ); } 	});	return result; } function set_new ( page, new_content ){	if( Outline_bot_config.debug) console.log( page, new_content );   var to_send = {        action: 'edit',        title: page,        text: new_content,        notminor: true,        bot: true,        summary: Outline_bot_summary,        token: mw.user.tokens.get( 'csrfToken' )    };    console.log( to_send );    $.when( $.post( scriptUrl, to_send, function( response ){ } ) ).done( function { if( Outline_bot_config.debug) console.log( response ); } ); } }); //