From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

if( mw.config.get( "wgPageName" ).indexOf( "Special:AbuseFilter/test" ) === 0 ) {

    function makeQueryHelper( api, params, limit ) {

        return $.post( window.location, params ).then( function ( html ) {

            var parser = new DOMParser();

            var doc = parser.parseFromString( html, "text/html" );

            var els = Array.prototype.slice.call( doc.querySelector( "ul.special" ).children );

            if( els.length < 100 || els.length >= limit ) {

                return els;

            } else {

                params.wpTestPeriodEnd = elsels.length - 1].dataset.mwTs;

                return makeQueryHelper( api, params, limit - 100 ).then( function ( data ) {

                    return els.concat( data );

                } );

            }

        } );

    }



    function makeQuery() {

        $( "#wpFilterForm" ).parents( "fieldset" ).after( $( "<div>", { "class": "mw-changeslist" } ).append( "Loading..." ) );

        mw.loader.load(  'mediawiki.interface.helpers.styles', 'mediawiki.special.changeslist'  );

        var fieldNames = 

            "wpTestUser",

            "wpExcludeBots",

            "wpTestPeriodStart",

            "wpTestPeriodEnd",

            "wpTestPage",

            "wpEditToken",

            "title"

        ];

        var params = {};

        for( var i = 0; i < fieldNames.length; i++ ) {

            var el = document.querySelector( "form#wpFilterForm input[name='" + fieldNamesi + "']" );

            paramsfieldNamesi]] = ( el.type === "checkbox" )

                ? ( el.checked ? "1" : "0" )

                : el.value;

        }



        params.wpFilterRules = document.querySelector( "#wpFilterRules" ).value;

        params.wpTestAction = $( "#mw-input-wpTestAction select" ).find( "option:contains('" +

            $( "#mw-input-wpTestAction span[role='textbox']" ).text() + "')" ).attr( "value" );



        // We need to tell if we hit the end of the results, which means every query that doesn't hit the end needs to

        // return 100 results. We'll do the filtering later.

        params.wpShowNegative = "1";



        var showNegative = document.querySelector( "form#wpFilterForm input[name='wpShowNegative']" ).checked;



        var limit = document.querySelector( "#massTestLimit" ).value || 200;



        makeQueryHelper( new mw.Api(), params, limit ).then( function ( elements ) {

            var totalNum = elements.length;

            var hits = elements.filter( function ( el ) { 

                return el.className.indexOf( "mw-abusefilter-changeslist-match" ) >= 0;

            } );

            if( !showNegative ) {

                elements = hits;

            }



            // Group by day

            if( elements.length === 0 ) {

                 $( "#wpFilterForm" ).parents( "fieldset" ).after( "<p>No hits in " + totalNum + " edits.</p>" );

                 $( "div.mw-changeslist" ).remove();

                 return;

            }

                 

            var day = elements0].dataset.mwTs.substring( 0, 8 ); // YYYYMMDD

            var groups = [];

            var currentGroup = [];

            for( var i = 0; i < elements.length; i++ ) {

                var currentDay = elementsi].dataset.mwTs.substring( 0, 8 );

                if( day !== currentDay ) {

                    groups.push(  day, currentGroup  );

                    currentGroup = [];

                    day = currentDay;

                }

                currentGroup.push( elementsi );

            }

            groups.push(  day, currentGroup  );



            var monthNames = mw.config.get( "wgMonthNames" );

            var els = groups.map( function ( group ) {

                var dayName = group0].substring( 6, 8 ) + " " + monthNames parseInt( group0].substring( 4, 6 ) )  +

                    " " + group0].substring( 0, 4 );

                return 

                    $( "<h4>" ).text( dayName ),

                    $( "<ul>", { "class": "special" } ).append( group1 )

                ];

            } );

            els = Array.prototype.concat.apply( [], els );



            $( "div.mw-changeslist" ).remove();

            $( "#wpFilterForm" ).parents( "fieldset" ).after(

                $( "<div>", { "class": "mw-changeslist" } ).append( "<p>" + hits.length + " hit(s) (" + ( 100 * (

                    hits.length / totalNum ) ).toFixed( 2 ) + "%) out of " + totalNum + " edits</p>", els ) );

        } );

        return false;

    } // end makeQuery



    $( function () {

        $( "#wpFilterForm fieldset:first" ).append(

            "<br />Or ",

            $( "<button>", { "class": "oo-ui-inputWidget-input oo-ui-buttonElement-button" } )

                .css( { "padding": "0.5em" } )

                .text( "Test" )

                .click( makeQuery ),

            " with <input type='text' id='massTestLimit' /> edits" );

    } );

}
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

if( mw.config.get( "wgPageName" ).indexOf( "Special:AbuseFilter/test" ) === 0 ) {

    function makeQueryHelper( api, params, limit ) {

        return $.post( window.location, params ).then( function ( html ) {

            var parser = new DOMParser();

            var doc = parser.parseFromString( html, "text/html" );

            var els = Array.prototype.slice.call( doc.querySelector( "ul.special" ).children );

            if( els.length < 100 || els.length >= limit ) {

                return els;

            } else {

                params.wpTestPeriodEnd = elsels.length - 1].dataset.mwTs;

                return makeQueryHelper( api, params, limit - 100 ).then( function ( data ) {

                    return els.concat( data );

                } );

            }

        } );

    }



    function makeQuery() {

        $( "#wpFilterForm" ).parents( "fieldset" ).after( $( "<div>", { "class": "mw-changeslist" } ).append( "Loading..." ) );

        mw.loader.load(  'mediawiki.interface.helpers.styles', 'mediawiki.special.changeslist'  );

        var fieldNames = 

            "wpTestUser",

            "wpExcludeBots",

            "wpTestPeriodStart",

            "wpTestPeriodEnd",

            "wpTestPage",

            "wpEditToken",

            "title"

        ];

        var params = {};

        for( var i = 0; i < fieldNames.length; i++ ) {

            var el = document.querySelector( "form#wpFilterForm input[name='" + fieldNamesi + "']" );

            paramsfieldNamesi]] = ( el.type === "checkbox" )

                ? ( el.checked ? "1" : "0" )

                : el.value;

        }



        params.wpFilterRules = document.querySelector( "#wpFilterRules" ).value;

        params.wpTestAction = $( "#mw-input-wpTestAction select" ).find( "option:contains('" +

            $( "#mw-input-wpTestAction span[role='textbox']" ).text() + "')" ).attr( "value" );



        // We need to tell if we hit the end of the results, which means every query that doesn't hit the end needs to

        // return 100 results. We'll do the filtering later.

        params.wpShowNegative = "1";



        var showNegative = document.querySelector( "form#wpFilterForm input[name='wpShowNegative']" ).checked;



        var limit = document.querySelector( "#massTestLimit" ).value || 200;



        makeQueryHelper( new mw.Api(), params, limit ).then( function ( elements ) {

            var totalNum = elements.length;

            var hits = elements.filter( function ( el ) { 

                return el.className.indexOf( "mw-abusefilter-changeslist-match" ) >= 0;

            } );

            if( !showNegative ) {

                elements = hits;

            }



            // Group by day

            if( elements.length === 0 ) {

                 $( "#wpFilterForm" ).parents( "fieldset" ).after( "<p>No hits in " + totalNum + " edits.</p>" );

                 $( "div.mw-changeslist" ).remove();

                 return;

            }

                 

            var day = elements0].dataset.mwTs.substring( 0, 8 ); // YYYYMMDD

            var groups = [];

            var currentGroup = [];

            for( var i = 0; i < elements.length; i++ ) {

                var currentDay = elementsi].dataset.mwTs.substring( 0, 8 );

                if( day !== currentDay ) {

                    groups.push(  day, currentGroup  );

                    currentGroup = [];

                    day = currentDay;

                }

                currentGroup.push( elementsi );

            }

            groups.push(  day, currentGroup  );



            var monthNames = mw.config.get( "wgMonthNames" );

            var els = groups.map( function ( group ) {

                var dayName = group0].substring( 6, 8 ) + " " + monthNames parseInt( group0].substring( 4, 6 ) )  +

                    " " + group0].substring( 0, 4 );

                return 

                    $( "<h4>" ).text( dayName ),

                    $( "<ul>", { "class": "special" } ).append( group1 )

                ];

            } );

            els = Array.prototype.concat.apply( [], els );



            $( "div.mw-changeslist" ).remove();

            $( "#wpFilterForm" ).parents( "fieldset" ).after(

                $( "<div>", { "class": "mw-changeslist" } ).append( "<p>" + hits.length + " hit(s) (" + ( 100 * (

                    hits.length / totalNum ) ).toFixed( 2 ) + "%) out of " + totalNum + " edits</p>", els ) );

        } );

        return false;

    } // end makeQuery



    $( function () {

        $( "#wpFilterForm fieldset:first" ).append(

            "<br />Or ",

            $( "<button>", { "class": "oo-ui-inputWidget-input oo-ui-buttonElement-button" } )

                .css( { "padding": "0.5em" } )

                .text( "Test" )

                .click( makeQuery ),

            " with <input type='text' id='massTestLimit' /> edits" );

    } );

}

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook