Usuario:Peter Bowman/rc-speedy-deletion-watcher.js
Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
- Opera: Presiona Ctrl+F5.
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Recentchanges' ) {
mw.messages.set( {
'rc-speedy-deletion-new': 'Hay {{PLURAL:$1|1 nueva página marcada|$1 nuevas páginas marcadas}} para borrado rápido: $2.',
'rc-merge-request-new': 'Hay {{PLURAL:$1|1 nueva página marcada|$1 nuevas páginas marcadas}} para fusionar: $2.',
'rc-move-request-new': 'Hay {{PLURAL:$1|1 nueva página marcada|$1 nuevas páginas marcadas}} para traslado: $2.'
} );
$.when(
mw.loader.using( [ 'mediawiki.api', 'mediawiki.jqueryMsg', 'mediawiki.util' ] ),
$.ready
).done( function () {
var api = new mw.Api( { parameters: { formatversion: 2 } } ),
$speedyDeletioncounter = $( '#rc-speedy-deletion-current-queue-size' ),
$mergeRequestcounter = $( '#rc-merge-request-current-queue-size' ),
$moveRequestcounter = $( '#rc-move-request-current-queue-size' ),
speedyDeletionStorage = [],
mergeRequestStorage = [],
moveRequestStorage = [];
function doStuff( type, storage, $counter, data ) {
var members = data.query.categorymembers.map( function ( obj ) {
return obj.title;
} ),
added = members.filter( function ( pagename ) {
return !storage.includes( pagename );
} ).flatMap( function ( pagename ) {
var $a = $( '<a>' )
.attr( 'href', mw.util.getUrl( pagename ) )
.text( pagename );
return [ $a, ', ' ];
} ).slice( 0, -1 ),
addedCount = ( added.length + 1 ) / 2;
if ( added.length ) {
mw.notify( mw.message( mw.format( 'rc-$1-new', type ), addedCount, added ), {
autoHide: false,
type: 'warn'
} );
}
if ( $counter.length ) {
$counter.text( members.length );
}
// https://stackoverflow.com/a/45383403
storage.length = 0;
Array.prototype.push.apply( storage, members );
}
mw.hook( 'wikipage.content' ).add( function () {
var queryTemplate = { list: 'categorymembers', cmlimit: 'max' };
api.get( $.extend( {}, queryTemplate, {
cmtitle: 'Categoría:Wikcionario:Borrar (definitivo)'
} ) ).done( doStuff.bind( null, 'speedy-deletion', speedyDeletionStorage, $speedyDeletioncounter ) );
api.get( $.extend( {}, queryTemplate, {
cmtitle: 'Categoría:Wikcionario:Fusionar'
} ) ).done( doStuff.bind( null, 'merge-request', mergeRequestStorage, $mergeRequestcounter ) );
api.get( $.extend( {}, queryTemplate, {
cmtitle: 'Categoría:Wikcionario:Solicitudes de traslado'
} ) ).done( doStuff.bind( null, 'move-request', moveRequestStorage, $moveRequestcounter ) );
} );
} );
}