Jump to content

User:Rusalkii/submitRMTR.js

From Wikipedia, the free encyclopedia
This is the current revision of this page, as edited by Rusalkii (talk | contribs) at 03:55, 30 April 2025. The present address (URL) is a permanent link to this version.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
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.
//submitRMTR
//<nowiki>
$(function() {
	function submitRMTR() {
		var oldTitle = $('input[name=wpOldTitle]').val();
		var newNamespace = mw.config.get('wgFormattedNamespaces')[$('select[name=wpNewTitleNs]').val()];
		var newTitle = $('input[name=wpNewTitleMain]').val();
		var newTitleFull = (newNamespace === '' ? newTitle : newNamespace + ':' + newTitle); 
		var reason = $('input[name=wpReason]').val();
		var rmtrText = '{{subst:RMassist|1=' + oldTitle + '|2=' + newTitleFull + '|reason=' + reason + '}}';
		var sectionHeader = "==== Uncontroversial technical requests ====";
		var pageName = "User:Rusalkii/RMTR test"
		var result;
		var api = new mw.Api();
		var params = {
			action: 'query',
			prop: 'revisions',
			rvprop: 'content',
			rvlimit: 1,
			titles: pageName
		};
		api.get(params).done(function(data) {
			var page;
			for (page in data.query.pages){
				result = data.query.pages[page].revisions[0]['*'];
				
				// Find the next section heading
				var nextSectionHeader = "==== Requests to revert undiscussed moves ====";
				var nextSectionIndex = result.indexOf(nextSectionHeader);
				
				if (nextSectionIndex !== -1) {
					// Look backward for the newline before the header
					// This should be the line between the last entry and the next section
					var lastNewlinePos = result.lastIndexOf("\n", nextSectionIndex - 2);
					
					// Insert the new entry at the end of the section, before the empty line
					var newResult = result.substring(0, lastNewlinePos + 1) + 
									rmtrText + "\n" + 
									result.substring(lastNewlinePos + 1);
					var params2 = {
						action: 'edit',
						title: pageName,
						text: newResult,
						summary: "Add request using [[User:Rusalkii/submitRMTR|submitRMTR]]"
					},
					api2 = new mw.Api();
					
					api2.postWithToken('csrf',params2).done(function(data){
						console.log(data);
						alert("Success.");
						window.location = mw.util.getUrl(pageName);
					});
				}
			}
		});
	}
	
	if (window.location.href.match('Special:MovePage')) {
		var $rmtrButton = new OO.ui.ButtonWidget({
			label:'Submit Technical Request',
			flags: ['primary','progressive']
		}).$element
			.on('click',submitRMTR)
			.appendTo($('button[name=wpMove]').parent().parent())
		;
	}
});
//</nowiki>