User:The Transhumanist/FetchCat.js

// Started from User:DannyS712/Cat links 2.js and User:DannyS712 test/append.js

mw.loader.using( 'mediawiki.util', function {    $(document).ready( function  { var link = mw.util.addPortletLink( 'p-tb', '#', 'Fetch category', 'tb-fetchCat', 'Get the links from a category',  , ); $( link ).click( function ( event ) {           event.preventDefault;            cats;        } ); } ); } );

function cats { var page = prompt("Please enter the category name (not including \"Category:\")", "Wikipedians");

var ns = 0;

if (page === null || page === "") { console.log( "User cancelled the prompt." ); } else { console.log( page ); var catRequest = { action: 'query', list: 'categorymembers', cmlimit: 500, cmtitle: 'Category:' + page, cmprop: 'title', format: 'json' };		$.get( mw.config.get( 'wgScriptPath' ) + '/api.php', catRequest, function( catResponse ) {			var pages = catResponse.query.categorymembers;			var listed = [];			var links = "";			for (var i = 0; i < pages.length; i++) {				if ( pages[i].ns === ns ) {					var this_link = '* ' + pages[i].title + '\n';					listed.push(this_link);					links = links + this_link;				}			}			if ( links === "" ) {				alert( "There are no pages in the specified namespace in that category." );			}			else addNewSection( 'Fetch links from category using FetchCat', page, links );		} ); } }

function getToken { var tokenReq = { action: 'query', meta: 'tokens', format: 'json' };    var result = null; var scriptUrl = mw.config.get( 'wgScriptPath' ) + '/api.php'; $.ajax({       url: scriptUrl,        type: 'get',        data: tokenReq,        dataType: 'json',        async: false,        success: function(data) {            result = data.query.tokens.csrftoken;        }      }); return result; }

function addNewSection( summary, title, content) { $.ajax({       url: mw.util.wikiScript( 'api' ),        data: {            format: 'json',            action: 'edit',            title: mw.config.get( 'wgPageName' ),            section: 'new',            sectiontitle: title,            summary: summary,            text: content,            token: getToken        },        dataType: 'json',        type: 'POST',        success: function( data ) {            if ( data && data.edit && data.edit.result == 'Success' ) {                window.location.reload; // reload page if edit was successful            } else if ( data && data.error ) {                alert( 'Error: API returned error code "' + data.error.code + '": ' + data.error.info );            } else {                alert( 'Error: Unknown result from API.' );            }        },        error: function( xhr ) {            alert( 'Error: Request failed.' );        }    }); }