MediaWiki:Gadget-Botify.js

From Zelda Wiki, the Zelda encyclopedia
Revision as of 08:53, 28 June 2017 by KokoroSenshi (talk | contribs) (Moved from https://zelda.gamepedia.com/index.php?title=User%3AKokoroSenshi%2Fcommon.js&type=revision&diff=567457&oldid=566808)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// --------------------------------------------------------
// Will Bot the user just before the Replace Text starts
// --------------------------------------------------------

function botOnReplaceText() {
	$('#choose_pages').on('submit', function(e){
		
		var api = new mw.Api(),
		    botExpiry = '1 minute', //Broken: It doesn't expire...
		    userName = mw.config.get("wgUserName"),
		    rightsToken;
		
		console.log( (mw.config.get("wgUserGroups").indexOf("bot") !== -1) ? userName+" is botted." : userName+" is not botted.");
		
		api.get( {
			action: 'query',
			meta: 'tokens',
			type: 'userrights'
		}, {
			async: false
		} ).done( function ( data ) {
			
			rightsToken=data.query.tokens.userrightstoken;
			console.log( "Token retrieved: "+rightsToken );
			
			api.post( {
				action: 'userrights',
				user: userName,
				add: 'bot',
				expiry: botExpiry,
				token: rightsToken
			}, {
				async: false
			} ).done( function ( data ) {
				
				api.get( {
					action: 'query',
					meta: 'userinfo',
					uiprop: 'groups'
				} ).done( function ( data ) {
					console.log(data.query.userinfo.groups);
				} );
				
				console.log( data );
				
				console.log( "Submitting Replace Text..." );
				
			} );
			
		} );
	});
}
$( botOnReplaceText() );

	mediaWiki.util.addPortletLink(
		"p-tb",
		window.location,
		"Unbot",
		"ca-unbot",
		"Click to unbot"
	); console.log("|Unbot link added");
	$("#ca-unbot").on("click", function(e) {
		
		e.preventDefault();
		var api = new mw.Api(),
		    userName = mw.config.get("wgUserName"),
		    rightsToken;
		
		console.log( (mw.config.get("wgUserGroups").indexOf("bot") !== -1) ? userName+" is botted." : userName+" is not botted.");
		
		api.get( {
			action: 'query',
			meta: 'tokens',
			type: 'userrights'
		} ).done( function ( data ) {
			
			console.log( data );
			rightsToken=data.query.tokens.userrightstoken;
			console.log( "Token retrieved: "+rightsToken );
			
			api.post( {
				action: 'userrights',
				user: userName,
				remove: 'bot',
				token: rightsToken
			} ).done( function ( data ) {
				
				console.log( data );
				
				alert(
					mw.config.get("wgUserGroups") + " \n"
					+ ( (mw.config.get("wgUserGroups").indexOf("bot") !== -1) ? userName+" is currently botted." : userName+" is currently not botted." )
				);
					
				api.get( {
					action: 'query',
					meta: 'userinfo',
					uiprop: 'groups'
				} ).done( function ( data ) {
					alert(
						data.query.userinfo.groups + " \n"
						+ ( (data.query.userinfo.groups.indexOf("bot") !== -1) ? userName+" is now botted." : userName+" is now not botted." )
					);
				} );
				
			} );
			
		} );
	}); console.log("|Unbot event added");