Jump to content

User:DannyS712 test/set JSON.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.
set_JSON_config = {
	name: "[[User:DannyS712/set JSON.js|set JSON]]",
	version: 1.0,
	debug: false
};

function set_JSON ( page, new_content, edit_summary, on_success ){
	if (set_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' ) {
	            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;
}