User:ExtorcDev/rmMaster.js

//

$('
').insertBefore('.tmbox-move');

$('').insertBefore('.mw-archivedtalk');

var url = window.location.href.match(/Talk.*$/gm).toString().replace(/_/g, ' ');

if(url.match(/#/gm)){

url = url.toString().replace(/#.*$/gm,'');

}

console.log(url);

$('.closeButton').click(function(){

queryPage(function(result){

sectionLog = result.split("==");

for(let i = 0; i < sectionLog.length; i++){

if(sectionLog[i].match(/Requested move \d/gm) && sectionLog[i+1].match(/{{requested move.*/g)){

var section = sectionLog[i+1];

section = section + '\n{{subst:RM bottom}}\n';

var closeMSG = window.prompt("Close Message : ");

var updatedSection;

if(section.match(/multiple=yes/gm)){

updatedSection = section.replace(/{{requested move.*multiple=yes\n.*/g,'{{subst:RM top|' + closeMSG + '|nac=yes}}');

}

else{

updatedSection = section.replace(/{{requested move.*/g,'{{subst:RM top|' + closeMSG + '|nac=yes}}');

}

result = result.replace(sectionLog[i+1], updatedSection);

console.log(result);

editPage(url, result, 'Closed');

}

}

});

});

$('.relistButton').click(function(){

console.log("Relisted");

queryPage(function(result){

sectionLog = result.split("==");

for(let i = 0; i < sectionLog.length; i++){

if(sectionLog[i].match(/Requested move \d/gm) && sectionLog[i+1].match(/{{requested move.*/g)){

var section = sectionLog[i+1];

console.log(section);

if(section.match(/'Relisting.*>/gm)){

console.log('Already relisted atleast once');

var prevRelists = section.match(/'Relisting.*>/);

var newRelists = prevRelists + '{{subst:relisting}}';

var updatedSection = section.replace(prevRelists, newRelists);

result = result.replace(section, updatedSection);

console.log(result);

editPage(url, result, 'Relisted');

}

else{

var updatedSection = section.replace(section.match(/.UTC./m),'(UTC){{subst:relisting}}');

result = result.replace(section, updatedSection);

console.log(result);

editPage(url, result, 'Relisted');

}

}

}

});

});

$('.rmTechButton').click(function(){

queryPage(function(result){

sectionLog = result.split("==");

for(let i = 0; i < sectionLog.length; i++){

if(sectionLog[i].match(/Requested move \d/gm)){

var section = sectionLog[i+1];

var moveFrom = window.prompt("Enter Move Source : ");

var moveTo = window.prompt("Enter Move Destination : ");

var reason = window.prompt("Request reason : ");

var techReq = '{{subst:RMassist|'+ moveFrom +'|' + moveTo + '|reason=' + reason + '}}';

var api2 = new mw.Api();

api2.get( queryParams('Wikipedia:Requested moves/Technical requests') ).done( function ( data ) {

var page2;

for (page2 in data.query.pages){

result2 = data.query.pages[page2].revisions[0]['*'];

var newMatch = result2.match(/=.* U.*\n.*>\n.*\n.*\n.*/gm).toString() + '\n' + techReq;

console.log(newMatch);

result2 = result2.replace(/=.* U.*\n.*>\n.*\n.*\n.*/gm, newMatch);

console.log(result2);

editPage('Wikipedia:Requested moves/Technical requests', result2, 'Raised Technical Request');

}

});

}

}

});

});

function editPage( loc , result , action) {

var api2 = new mw.Api();

api2.postWithToken("csrf", editParams(loc, result, action) ).done(function( data ) {

alert( 'Page edited!' );

} ).fail( function(code, data) {

console.log( api.getErrorMessage( data ).text());

} );

}

function queryParams(loc){ return { action: 'query', prop: 'revisions', rvprop: 'content', rvlimit: 1, titles: loc }; }

function editParams(loc, content, action){ return { action: 'edit', title: loc, text: content, summary: action + ' Request using rmMaster' }; }

function queryPage(onQuery){

var api = new mw.Api();

api.get( queryParams(url) ).done( function ( data ) {

var page;

for (page in data.query.pages){

result = data.query.pages[page].revisions[0]['*'];

onQuery(result);

}

});

}

//