User:Tcncv/twinkleundelete.js

// If TwinkleConfig aint exist. if( typeof( TwinkleConfig ) == 'undefined' ) { TwinkleConfig = {}; }

/** TwinkleConfig.deletionSummaryAd (string) If ad should be added or not to deletion summary, default TWINKLE */ if( typeof( TwinkleConfig.deletionSummaryAd ) == 'undefined' ) { TwinkleConfig.deletionSummaryAd = " using TW"; }

function twinkleundelete { if( wgNamespaceNumber < 0 || wgCurRevisionId != false ) { return; }	if( userIsInGroup( 'sysop' ) ) { mw.util.addPortletLink( 'p-cactions', "javascript:twinkleundelete.callback", "undel", "tw-undel", "Undelete em all", ""); } } addOnloadHook(twinkleundelete);

twinkleundelete.callback = function twinkleundeleteCallback { Wikipedia.actionCompleted.notice = 'Status'; Wikipedia.actionCompleted.postfix = 'undeletion is now completed';

var Window = new SimpleWindow( 800, 400 ); var div = document.createElement( 'div' ); Status.init( div ); Window.setContent( div ); Window.display;

var query = { 'action': 'query', 'titles': wgPageName, 'list' : 'deletedrevs', 'drprop' : 'token' };	var wikipedia_api = new Wikipedia.api( "Retrieving " + wgPageName, query, twinkleundelete.callbacks.QueryComplete); wikipedia_api.params = { 'title' : wgPageName }; wikipedia_api.post; }

twinkleundelete.callbacks = { QueryComplete: function(apiobj) { var xmlDoc =apiobj.responseXML; //alert("TRACE: Undelete query callback: xmlString= \n" + (new XMLSerializer).serializeToString(apiobj.responseXML) + "[END]");

var deletetoken = $(xmlDoc).find('deletedrevs page').attr('token');

var query = { 'action': 'undelete', 'title': apiobj.params.title, 'reason ': "Speedly undeleted." + TwinkleConfig.deletionSummaryAd, 'token': deletetoken };		var wikipedia_api = new Wikipedia.api( "Undeleting " + apiobj.params.title, query, twinkleundelete.callbacks.UndeleteComplete); wikipedia_api.params = apiobj.params; wikipedia_api.post; },	UndeleteComplete: function(apiobj) { var xmlDoc = apiobj.responseXML; //alert("TRACE: Undelete completion callback: xmlString= \n" + (new XMLSerializer).serializeToString(apiobj.responseXML) + "[END]"); } };