User:DannyS712 test/JSON.js

JSON_config = { name: "JSON", version: 1.0, debug: false, manual: true }; mw.loader.using( 'mediawiki.util', function {    $(document).ready( function  { if (JSON_config.manual) { var link = mw.util.addPortletLink( 'p-cactions', null, 'Get JSON', 'ca-get-JSON', 'get the JSON of this page'); $( link ).click( function ( event ) {	           event.preventDefault;	            console.log( get_JSON( mw.config.get( 'wgPageName' ) ) );	        } ); }   } ); } ); function get_JSON ( page ){ if (JSON_config.debug) console.log( location ); var get_page = { action: 'query', titles: page, prop: 'revisions', rvprop: 'content', format: 'json', formatversion: 2 };   var result = null; var scriptUrl = mw.config.get( 'wgScriptPath' ) + '/api.php'; $.ajax({		url: scriptUrl,		type: 'get',		data: get_page,		dataType: 'json',		async: false,		success: function(data) {		   var text = data.query.pages["0"].revisions["0"].content;	    	if (JSON_config.debug) console.log ( data );	    	if (JSON_config.debug) console.log( "Text:", text, "End text" );	    	var JSONed = JSON.parse( text );	    	var arr_JSONed = [];	    	for (var reminder in JSONed){	    		arr_JSONed.push(JSONed[reminder]);	    	}	    	if (JSON_config.debug) console.log( arr_JSONed );	    	result = arr_JSONed;		} 	}); return result; } function set_JSON ( page, new_content, edit_summary, on_success ){ if (JSON_config.debug) console.log( page, new_content, edit_summary ); $.ajax({	   url: mw.util.wikiScript( 'api' ),	    data: {	        format: 'json',	        action: 'edit',	        title: page,	        text: new_content,	        summary: edit_summary,	        token: getToken	    },	    dataType: 'json',	    type: 'POST',	    success: function( data ) {	        if ( data && data.edit && data.edit.result == 'Success' ) {	            if (on_success) alert( on_success );	        } 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.' );	    } } ); } 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; }