User:Winged Blades of Godric/TestScript.js

/* revdel.js version 2.3 - tweaking the cancellation process // Attribution See history for all changes ver. 1 originally copied from / based on User:Doug/closetfd.js ver. 2 improved with some major help from User:Evad37 // This template takes a number of inputs

* URLs - input all URLs that the page is copied from * ranges - the template can handle up to four ranges * start1 - mandatory - the revision ID of the oldest revision * end1 - optional - the revision ID of the newest revision - if left out, will only show "start1" (not a range) * start(2-4) - as above, but optional * end(2-4) - as above, but optional importScript('User:Timotheus Canens/displaymessage.js'); mw.loader.using( ['mediawiki.util', 'mediawiki.api'], function {	var API = new mw.Api( { ajax: { headers: { 'Api-User-Agent': 'revdel/2.2 ( https://en.wikipedia.org/wiki/User:Primefac/revdel.js )'	} }	} );

//Put portlet in menu var link = mw.util.addPortletLink('p-cactions', 'javascript:revdel_request', "Request revdel"); $( link ).click( function revdel_request	{		// Input ranges		var numRanges = prompt("How many ranges to revdel? (max 4)");		if(numRanges===null || numRanges==="")			return 0;		// Input URL(s)		var urls = prompt("URL(s)");		if(urls===null || urls==="")			if(numRanges===null || numRanges==="")				return 0;		// Dummy check to ensure correct number of inputs		while(numRanges < 1 || numRanges > 4){			numRanges = prompt("ERROR: number is not between 1 and 4. How many ranges?");		}		// Input start/end values for the range(s)		var startX = "";		var endX = "";		var ct=1;		var idOutput = "";		// Input IDs		while(ct <= numRanges){			startX = prompt("The ID of the first (oldest) revision to be deleted in range " + ct);			endX = prompt("(optional) The ID of the last (newest) revision to be deleted in range" + ct);			idOutput += "|start" + ct + "= " + startX;			// Checks to ensure the endX value is greater than the startX, then appends endX value if(startX < endX){ idOutput += "|end" + ct + "= " + endX; }			ct++; }		// Edit and modify the page API.postWithToken( "edit", {			action: "edit",			title: mw.config.get( "wgPageName"),			prependtext:"{" + "{copyvio-revdel" + "|url=" + urls + idOutput + "}}\n",			summary:"Requesting revision deletion (using User:Primefac/revdel)"		}).done( function {			// Code to execute if saved successfully			// Maybe reload the page:			location.reload;		}).fail( function( code, jqxhr ) {			// Edit failed. The reason will be in the code and/or jqxhr parameters...			if ( code === "http" && jqxhr.textStatus === "error" ) {				console.log( "HTTP error " + jqxhr.xhr.status );			} else if ( code === "http" ) {				console.log( "HTTP error: " + jqxhr.textStatus );			} else if ( code === "ok-but-empty" ) {				console.log( "Error: Got an empty response from the server" );			} else {				console.log( "API error: " + code );			}		}); } ) ; } ); /* For later var user, ts, anon; var q={ url:mw.util.wikiScript('api'), dataType:'json', type:'POST', data:{ format:'json', action:'query', titles:mw.config.get('wgPageName'), prop:'revisions', rvprop:'timestamp|user|content', rvlimit:1, rawcontinue:1 },               success:function(r,sts,xhr){ if(!dialog.dialog('isOpen')) return;

if(!r.query || !r.query.pages){ dialog.html(' Error: Bad response from API '); if(window.console && typeof(window.console.error)=='function') window.console.error("Bad response", r); return; }

for(var k in r.query.pages){ var rr=r.query.pages[k].revisions[0]; if(typeof(rr['*'])!='undefined' && rr['*'].indexOf(txt)<0){ if(!user){ dialog.html(' Error: Text was not found in the starting revision! Did you edit it? '); return; }                           var t=UnsignedHelper.makeUnsignedTemplate(user,ts,anon); var tt=e.value.substr(0,pos).replace(/\s*$/,' ')+t; e.value=tt+e.value.substr(pos); $(e).textSelection('setSelection', { start:tt.length }); dialog.dialog('close'); } else { user=rr.user; ts=rr.timestamp; anon=(typeof(rr.anon)!='undefined'); if(r['query-continue'] && r['query-continue'].revisions){ dialog.html('Evaluating revision '+(++rvct)+'...'); q.data.rvcontinue=r['query-continue'].revisions.rvcontinue; $.ajax(q); } else { var t=UnsignedHelper.makeUnsignedTemplate(user,ts,anon); var tt=e.value.substr(0,pos).replace(/\s*$/,' ')+t; e.value=tt+e.value.substr(pos); $(e).textSelection('setSelection', { start:tt.length }); dialog.dialog('close'); }                       }                        return; }                   dialog.html(' Error: No revisions found in the page! '); },               error:function(xhr,textStatus,errorThrown){ if(!dialog.dialog('isOpen')) return; dialog.html(' Error: '+textStatus+' '+errorThrown+' '); }           };