MediaWiki:Gadget-blocked-newusers.js

Från Wikipedia

OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.

  • Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
  • Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
  • Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
  • Opera: Tryck Ctrl-F5.
$( function() {
	if ( mw.config.get( 'wgCanonicalSpecialPageName' ) != 'Log' || !$( '.mw-logline-newusers' ).length ) {
		// Annan sida än [[Special:Logg]] med poster för nya användare
		return;
	}

	var	api = new mw.Api(),
		options = {
			action: 'query',
			list: 'logevents',
			letype: 'newusers',
			leprop: [ 'ids', 'details' ],
			lelimit: 'max'
		},
		start = new URLSearchParams( $( '.mw-prevlink' ).attr( 'href' ) ).get( 'offset' ),
		end = new URLSearchParams( $( '.mw-nextlink' ).attr( 'href' ) ).get( 'offset' ),
		params = new URLSearchParams( window.location.search );

	if ( params.get( 'user' ) ) {
		options.leuser = params.get( 'user' );
	}
	if ( params.get( 'page' ) ) {
		options.letitle = params.get( 'page' );
	}
	if ( params.get( 'tagfilter' ) ) {
		options.letag = params.get( 'tagfilter' );
	}
	if ( params.get( 'subtype' ) ) {
		options.leaction = 'newusers/' + params.get( 'subtype' );
	}
	if ( start ) {
		options.lestart = start;
	}
	if ( end ) {
		options.leend = end;
	}

	api.get( options ).done( function ( d ) {
		if ( !d || !d.query || !d.query.logevents ) {
			return;
		}

		var users = {};
		d.query.logevents.forEach( function( e ) {
			if ( e.logid && e.params && e.params.userid ) {
				users[ e.params.userid ] = e.logid;
			}
		} );

		api.post( {
			action: 'query',
			list: 'users',
			usprop: 'blockinfo',
			ususerids: Object.keys( users )
		} ).done( function( d ) {
			if ( !d || !d.query || !d.query.users ) {
				return;
			}
			d.query.users.forEach( function( u ) {
				if ( u.blockid ) {
					logline = $( '.mw-logline-newusers[data-mw-logid="' + users[ u.userid ] + '"]' );
					logline.append( ' (Blockerad)' );
					logline.addClass( 'blocked-new-user' );
				}
			} );
		} );
	} );
} );