Utilisateur:0x010C/script/EnhancedContribToolList.js
< Utilisateur:0x010C | script
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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./**
* Log Counter
*/
$( async function() {
var api = new mw.Api(),
groups = mw.config.get( 'wgUserGroups' );
function getNode( mwMessage ) {
var i,
$candidates = $( '#contentSub .mw-changeslist-links > span' ),
textF = mw.msg( mwMessage, 'female' ),
textM = mw.msg( mwMessage, 'male' );
for ( i = 0; i < $candidates.length; i++ ) {
if ( $candidates.eq( i ).children( 'a' ).text() === textF || $candidates.eq( i ).children( 'a' ).text() === textM ) {
return $candidates.eq( i );
}
}
};
async function displayBlockNumber() {
var result, i, $span,
block = 0,
reblock = 0,
unblock = 0;
// Get up to 5000 block logs
result = await api.get( {
action: 'query',
format: 'json',
list: 'logevents',
letype: 'block',
letitle: 'User:' + mw.config.get( 'wgRelevantUserName' ),
lelimit: 'max'
} );
// Sum up all revs to count them
for ( i = 0; i < result.query.logevents.length; i++ ) {
switch( result.query.logevents[ i ].action ) {
case 'block':
block++;
break;
case 'reblock':
reblock++;
break;
case 'unblock':
unblock++;
break;
}
}
// Display the result
$span = $( '<span> (<span title="block">' + block + '</span> / <span title="reblock">' + reblock + '</span> / <span title="unblock">' + unblock + '</span>)</span>' );
if ( block > 0 ) {
$span.css( 'font-weight', 'bold' );
}
getNode( 'sp-contributions-blocklog' ).append( $span );
};
async function displayDeletedRevisionNumber() {
var result, i, $span
count = 0;
// Get up to 5000 deleted revs
result = await api.get( {
action: 'query',
format: 'json',
list: 'alldeletedrevisions',
formatversion: 2,
adrlimit: 'max',
adruser: mw.config.get( 'wgRelevantUserName' )
} );
// Sum up all revs to count them
for ( i = 0; i < result.query.alldeletedrevisions.length; i++ ) {
count += result.query.alldeletedrevisions[ i ].revisions.length;
}
// Display the result
$span = $( '<span>' ).text( ' (' + count + ( count > 4900 ? '+' : '' ) + ')' );
if ( count > 0 ) {
$span.css( 'font-weight', 'bold' );
}
getNode( 'sp-contributions-deleted' ).append( $span );
};
async function displayAbuselogNumber() {
var result, i, $span
count = 0;
// Get up to 5000 deleted revs
result = await api.get( {
action: 'query',
format: 'json',
list: 'abuselog',
afluser: mw.config.get( 'wgRelevantUserName' ),
afllimit: 'max',
aflprop: 'ids'
} );
count = result.query.abuselog.length;
// Display the result
$span = $( '<span>' ).text( ' (' + count + ( count > 4900 ? '+' : '' ) + ')' );
if ( count > 0 ) {
$span.css( 'font-weight', 'bold' );
}
getNode( 'abusefilter-log-linkoncontribs' ).append( $span );
};
async function displayCULogNumber() {
var result, i, $span
count = 0;
// Get up to 5000 deleted revs
result = await api.get( {
action: 'query',
format: 'json',
list: 'checkuserlog',
cultarget: mw.config.get( 'wgRelevantUserName' ),
cullimit: 'max',
} );
count = result.query.checkuserlog.entries.length;
// Display the result
$span = $( '<span>' ).text( ' (' + count + ( count > 4900 ? '+' : '' ) + ')' );
if ( count > 0 ) {
$span.css( 'font-weight', 'bold' );
}
getNode( 'checkuser-contribs-log' ).append( $span );
};
// If we're on the "Contributions" special page
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Contributions' ) {
await api.loadMessagesIfMissing( [ 'abusefilter-log-linkoncontribs', 'sp-contributions-deleted', 'sp-contributions-blocklog', 'checkuser-contribs-log' ] );
displayBlockNumber();
displayAbuselogNumber();
if ( groups.indexOf( 'sysop' ) > -1 || groups.indexOf( 'checkuser' ) > -1 ) {
displayDeletedRevisionNumber();
}
if ( groups.indexOf( 'checkuser' ) > -1 ) {
displayCULogNumber();
}
}
} );