MediaWiki:Common.js

Uit RTV Stichtse Vecht
Versie door Eloman (overleg | bijdragen) op 12 sep 2024 om 14:03 (Nieuwe pagina aangemaakt met '→‎JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers: /* easyblock.js - Script to quickly block spambots By Legoktm, with assistance from Ori.livneh and MZMcBride Adds two tabs, "OP: Spambot block" and "Spambot block". OP will block for 6 months, and regular will do 3. If the user is an account, it will be indefinite. The script will forward you to Special:Nuke once done. This script very likely may contain bugs...')
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Opmerking: nadat u de wijzigingen hebt gepubliceerd is het wellicht nodig uw browsercache te legen.

  • Firefox / Safari: houd Shift ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
  • Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
  • Internet Explorer / Edge: houd Ctrl ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5
  • Opera: druk op Ctrl-F5.
/* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers */
/*
	easyblock.js - Script to quickly block spambots
	By Legoktm, with assistance from Ori.livneh and MZMcBride

	Adds two tabs, "OP: Spambot block" and "Spambot block".
	OP will block for 6 months, and regular will do 3.
	If the user is an account, it will be indefinite.
	The script will forward you to Special:Nuke once done.

	This script very likely may contain bugs, use at your
	own risk.

	Released under the MIT License, see README.txt for details.

*/

if ( mw.config.get('wgPageName').indexOf('Special:Contributions') >= 0 ) {
	var opblock = mw.util.addPortletLink( 'p-cactions', '#',
		'OP: Spambot block', 'ca-easy-block', 'Open proxy spambot block - 6 months'
	);
	var spambot = mw.util.addPortletLink( 'p-cactions', '#',
		'Spambot block', 'ca-easy-block', 'Spambot block - 3 months'
	);
}

// Bind click handler
$( opblock ).click( function () {
	block( true );
	// doSomeStuff();
	//alert( 'It works!' );
});
$( spambot ).click( function () {
	block( false );
	// doSomeStuff();
	//alert( 'It works!' );
});



function block( isproxy ) {
	var api = new mw.Api();
	// lets figure out the username

	var username = mw.util.getParamValue('target') || mw.config.get('wgTitle').substr(14);
	//action=query&list=users&ususers=127.0.0.1
	//action=query&prop=info&intoken=block&titles=User:Bob&format=jsonfm
	api.get( {
		action: 'query',
		list: 'users',
		ususers: username
	}).done( 
		function( data ) {
			var obj = data.query.users[0];
			console.log(obj);
			var exp;
			if ( obj.invalid !== undefined ) {
				exp = isproxy ? '6 months' : '3 months';
			} else {
				exp = 'indefinite';
			}
			api.get( {
				action: 'query',
				prop: 'info',
				intoken: 'block',
				titles: 'aksjdhfksdjhfskdfhsjdhfgsjhdfg', //apparently this works
				format: 'json'
			} ).done( 
				function( data ) {
					var blocktoken = data.query.pages['-1'].blocktoken;
					console.log(blocktoken);
					api.post( {
						action: 'block',
						user: username,
						expiry: exp,
						reason: isproxy ? '{{blocked proxy}}: Spambot' : 'Spambot',
						nocreate: '1',
						anononly: '1',
						autoblock: '1',
						token: blocktoken
					}).done(
						function( data ) {
							window.location = '/wiki/Special:Nuke/' + username;
						}
					);
				}
			);

		}
	);
	
}