Aller au contenu

Utilisateur:0x010C/script/SpamBlock.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !!!!!!!!!!!!!!!!!!!   ATTENTION   !!!!!!!!!!!!!!!!!!!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
// Ce script n'a été testé que sur ma propre configuration (Linux Mint 8 / Firefox54 / Skin vector)
// Impliquant le bloquage de comptes, il est donc important de controler son bon fonctionnement via son log d'actions admin.'
// À n'utiliser que dans le cas de comptes créé en rafale

// Le code a été écris en 30 minutes, il est donc crade et pleins de choses sont en dure. Cela va évoler dès que j'en aurais le temps.


function block( username ) {
  var api = new mw.Api();
  return api.postWithToken( 'csrf', {
    action: 'block',
    user: username,
    expiry: 'never',
    reason: 'cf. [[Wikipédia:Bulletin_des_administrateurs/2017/Semaine_16#Jeudi_20_avril|BA comptes en rafale]]',
    nocreate: '1',
    autoblock: '1',
    noemail: '1',
    allowusertalk: '1',
    tags: 'spamblock'
  } );
}

function spamblock() {
  $( '.mw-logline-newusers' ).each( function() {
    if ( $( this ).find( ':checked' ).length ) {
      var self = this;
      block( $( this ).find( 'a.new.mw-userlink' ).text() )
      .then( function( data ) {
        console.log( data.block.id );
        $( self ).css( 'background', '#b1f968' );
        $( self ).append( $( '<i>' ).html( '<small>Blocage #' + data.block.id + '</small>' ) );
      } )
      .fail( function( data ) {
        if ( data === 'alreadyblocked' ) {
          $( self ).css( 'background', '#f9f968' );
        }
        else {
          $( self ).css( 'background', '#fc4c49' );
        }
      } );
    }
  } );
}

if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Log' && mw.util.getParamValue( 'type' ) === 'newusers' ) {
  var button = $( '<button>' ).text( 'Bloquer en masse des comptes créé en rafale' );
  button.click( function( e ) {
    e.preventDefault();
    spamblock();
  } );
  $( '.mw-checkbox-toggle-controls' ).eq( 0 ).before( button );
}