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.

// <nowiki>

preptools = async function (e){

    let preppage = await get_pages(Morebits.pageNameNorm,"user|content",null,"older");

	await preppage;

	let preptext = preppage0].revisions0].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 [[Wikipedia:Requests for adminship]] first?");

			return;

		}

        let pqnum = preppage0].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 [[${preppage0].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 = clearpage0].revisions0].slots.main.content;

		let nextpreptext = nextpreppage0].revisions0].slots.main.content;

		let queuetext = `{{DYKbotdo|~~~}}\n${preptext}`

        if (queuepage0].revisions0].slots.main.content.length > 100){

            alert("You sure that queue's empty?");

            return;

        }

 

        if (nextpreptext0 != pqnum){

            alert("Promote your queues in order, I can't clean up all your messes!");

            return;

        }

		

		console.log(nextpreptext0],nextpreptext0%7,nextpreptext0%7+1,(parseInt(nextpreptext0])%7+1).toString()+nextpreptext.slice(1));

		nextpreptext = (parseInt(nextpreptext0])%7+1).toString()+nextpreptext.slice(1);

    



		var params = {

			action: 'edit',

			title: queuepagetitle, //queue

			summary: `promoting from [[${preppage0].title}|prep ${pqnum}]] ([[User:Theleekycauldron/DYK promoter|PSHAW]])`,

			text: queuetext,

			format: 'json'

		}

		api.postWithToken( 'csrf', params ).done( function ( data ) {

			form.root.childs0].data.label += 'done! :)';

			console.log( data );

			show();

			//location.reload(true);

		} );

		

		var params = {

			action: 'edit',

			title: preppage0].title,

			summary: `rake to [[${queuepagetitle}|queue ${pqnum}]] ([[User:Theleekycauldron/DYK promoter|PSHAW]])`,

			text: cleartext,

			format: 'json'

		}

		api.postWithToken( 'csrf', params ).done( function ( data ) {

			console.log(data);

			form.root.childs1].data.label += 'done! :)';

			console.log(form.root.childs1]);

			show();

		} );

		

		var params = {

			action: 'edit',

			title: nextpreppagetitle,

			summary: `updating counter ([[User:Theleekycauldron/DYK promoter|PSHAW]])`,

			text: nextpreptext,

			format: 'json'

		}

		api.postWithToken('csrf', params).done( function ( data ) {

			console.log(data);

			form.root.childs2].data.label += 'done! :)';

			console.log(form.root.childs2]);

			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{{Template:Did you know nominations/' + nompage + '}}');

			dykpage.setPageText(newPageText);

			dykpage.setEditSummary(`/* Pulled nominations */ adding [[Template:Did you know nominations/${nompage}']] ([[User:Theleekycauldron/DYK promoter|PSHAW]])`);

			dykpage.setMaxConflictRetries(3);

			dykpage.save();

		});

	}

	

	show();

}

// </nowiki>