Saltar para o conteúdo

Usuário:!Silent/verifyMatchFilter.js

Origem: Wikipédia, a enciclopédia livre.

Nota: Depois de publicar, poderá ter de contornar a cache do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
/**
 * @author [[w:pt:User:!Silent]]
 * @date 02/dez/2016
 */
/* global mediaWiki, jQuery */

( function( mw, $, window ) {
'use strict';

mw.messages.set( {
	'vmf-match': 'verificar ocorrências',
	'vmf-regex': 'Insira a regex',
	'vmf-noMatch': 'Sem ocorrências encontradas.'
} );

/**
 * Messages
 * @param {string} name Name of the message
 * @param {string|number} [$N] Dynamic parameters to the message (i.e. the values for $1, $2, etc)
 * @see [[mw:ResourceLoader/Default_modules#mediaWiki.message]]
 * @return {string}
 */
function message( /*name[, $1[, $2[, ... $N ]]]*/ ) {
	return mw.message.apply( undefined, arguments ).plain();
}

function verifyMatchFilter() {
	var regexTarget, matched;

	$( 'fieldset span a' ).last().after( ' | <a href="#" id="vmf-match">' + message( 'vmf-match' ) + '</a>' );
	$( '#vmf-match' ).click( function() {
		if ( !( regexTarget = prompt( message( 'vmf-regex' ), '' ) ) ) {
			return;
		}

		matched = $( '.diff' ).text()
			.toUpperCase()
			.replace( /["ÁÀÃÂÄ]/gi, 'A' )
			.replace( /[ÉÈÊË]/gi, 'E' )
			.replace( /[ÍÌÎÏ]/gi, 'I' )
			.replace( /[ÓÒÔÖÕ]/gi, 'O' )
			.replace( /[ÚÙÜÛ]/gi, 'U' )
			.replace( /Ñ/gi, 'N' )
			.replace( /Ç/gi, 'C' )
			.replace( /(.?)\1{1,}/g, '$1' )
			.match( new RegExp( regexTarget ) );

		alert( !!matched ? matched.join( '\n' ) : message( 'vmf-noMatch' ) );
	} );
}

if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'AbuseLog' ) {
	verifyMatchFilter();
}

}( mediaWiki, jQuery, window ) );