User:Theleekycauldron/Prep tools.js

// preptools = async function (e){ let preppage = await get_pages(Morebits.pageNameNorm,"user|content",null,"older"); await preppage; let preptext = preppage[0].revisions[0].slots.main.content; e.preventDefault; var Window = new Morebits.simpleWindow(500, 400); Window.setTitle("The prep set's half-assed workbench (PSHAW)"); Window.addFooterLink("DYK promoter's rules", "WP:DYKSG#Rules of thumb for preparing updates"); var form = new Morebits.quickForm; function show{ result = form.render; Window.setContent(result); Window.display; }	async function promote{ if (!mw.config.get('wgUserGroups').includes("sysop")){ alert("Might I suggest Requests for adminship first?"); return; }       let pqnum = preppage[0].title.slice(-1) let queuepagetitle = "Template:Did you know/Queue/"+pqnum; let nextpreppagetitle = "Template:Did you know/Queue/NextPrep"; form.root.childs = []; form.append({			type: 'div',			name: 'queuemove',			label: `moving to ${queuepagetitle}... `		}); form.append({			type: 'div',			name: 'prepclear',			label: `clearing ${preppage[0].title}... `		}); form.append({			type: 'div',			name: 'updatecounter',			label: `updating Template:Did you know/Queue/NextPrep... `		}); show; let clearpage = await get_pages("Template:Did you know/Clear","user|content",null,"older"); let nextpreppage = await get_pages(nextpreppagetitle,"user|content",null,"older"); let queuepage = await get_pages(queuepagetitle,"user|content",null,"older");

await clearpage; await nextpreppage; await queuepage let cleartext = clearpage[0].revisions[0].slots.main.content; let nextpreptext = nextpreppage[0].revisions[0].slots.main.content; let queuetext = `\n${preptext}` if (queuepage[0].revisions[0].slots.main.content.length > 100){ alert("You sure that queue's empty?"); return; }       if (nextpreptext[0] != pqnum){ alert("Promote your queues in order, I can't clean up all your messes!"); return; }		console.log(nextpreptext[0],nextpreptext[0]%7,nextpreptext[0]%7+1,(parseInt(nextpreptext[0])%7+1).toString+nextpreptext.slice(1)); nextpreptext = (parseInt(nextpreptext[0])%7+1).toString+nextpreptext.slice(1);

var params = { action: 'edit', title: queuepagetitle, //queue summary: `promoting from prep ${pqnum} (PSHAW)`, text: queuetext, format: 'json' }		api.postWithToken( 'csrf', params ).done( function ( data ) {			form.root.childs[0].data.label += 'done! :)'; console.log( data ); show; //location.reload(true); } );		var params = {			action: 'edit',			title: preppage[0].title,			summary: `rake to queue ${pqnum} (PSHAW)`,			text: cleartext,			format: 'json'		}		api.postWithToken( 'csrf', params ).done( function ( data ) { console.log(data); form.root.childs[1].data.label += 'done! :)';			console.log(form.root.childs[1]);			show;		} ); var params = { action: 'edit', title: nextpreppagetitle, summary: `updating counter (PSHAW)`, text: nextpreptext, format: 'json' }		api.postWithToken('csrf', params).done( function ( data ) {			console.log(data);			form.root.childs[2].data.label += 'done! :)'; console.log(form.root.childs[2]); show; } );	}	form.append({ type: 'div', name: 'underdevelopment', label: "this tool is still under development :)"	}) form.append({		type: 'button',		name: 'promoter',		label: 'Move to queue',		style: 'float: right',		event: function p{promote}	}) function pull_hook(slotnum){ var dykpage = new Morebits.wiki.page("Template talk:Did you know", 'Adding nomination to Template talk:Did you know'); //shamelessly stolen from SD0001 var nompage = "" dykpage.load(function addNomToTTDYK(dykpage) {			var pageText = dykpage.getPageText;			var re = new RegExp('==Pulled nominations==\n^.*?$');			var newPageText = pageText.replace(re, '$&\n');			dykpage.setPageText(newPageText);			dykpage.setEditSummary(`/* Pulled nominations */ adding Template:Did you know nominations/${nompage}' (PSHAW)`);			dykpage.setMaxConflictRetries(3);			dykpage.save;		}); }	show; } //