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;
}