Interested Article - Gadget-common-special-newpages.js
melania
- 2021-03-04
- 1
После
сохранения или
недавних изменений
очистите кэш браузера
.
Возможно,
этот код документирован
.
// Не удаляйте проверку на название подстраницы
( function() {
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Newpages' ) {
return;
}
var formattedNamespaces = mw.config.get( 'wgFormattedNamespaces' );
var nonFlaggedNS = [];
$.each( formattedNamespaces, function ( i, ns ) {
if ( i > 0 && i !== 6 && i !== 10 && i !== 14 ) {
nonFlaggedNS.push( ns );
}
});
nonFlaggedNS.push( 'Участница' );
nonFlaggedNS = new RegExp( '^(' + nonFlaggedNS.join( '|' ) + '):' );
var title,
titles = [],
link = {};
$( 'a.mw-newpages-pagename' ).each( function ( i, lnk ) {
title = $( lnk ).attr( 'title' );
if ( nonFlaggedNS.test( title ) ) {
return;
}
titles.push( title );
link[ title ] = lnk;
});
function markLink( pg ) {
var $lnk = $( link[ pg.title ] );
var $li = $lnk.closest( 'li' );
var className;
var catText;
var catClass;
var catTip;
if ( pg.flagged ) {
if ( pg.lastrevid == pg.flagged.stable_revid ) {
className = 'flaggedrevs-color-1';
} else {
className = 'flaggedrevs-pending';
addLink( 'oldid=' + pg.flagged.stable_revid + '&diff=' + pg.lastrevid, 'непров' );
}
} else {
className = 'flaggedrevs-unreviewed';
}
$li.addClass( className );
if ( typeof pg.watched === 'string' ) {
$lnk.wrap( '<strong class="mw-watched" />' );
}
if ( pg.talkid ) {
addLink( 'curid=' + pg.talkid, '<b>обс.</b>' );
}
if ( pg.categories ) {
for ( var c = 0; c < pg.categories.length; c++ ) {
var cat = pg.categories[ c ].title.replace( /^[^:]+:/, '' ); //rm prefix
if ( /:К быстрому удалению$/.test( cat ) && !catText ) {
catText = 'КБУ';
catClass = 'speedy';
catTip = cat;
} else if ( /:Кандидаты на удаление$/.test( cat ) ) {
catText = 'К удалению';
catClass = 'afd';
catTip = cat;
} else if ( /^Википедия:БУ:/.test( cat ) ) {
catText = cat.replace( /^Википедия:/, '' );
catClass = 'speedy';
catTip = cat;
} else if ( /^Википедия:К отсроченному удалению$/.test( cat ) ) {
catText = 'Отсроченное';
catClass = 'deleteslow';
catTip = cat;
} else if ( /:Оспариваемые быстрые удаления$/.test( cat ) ) {
catText = 'Оспаривается';
catClass = 'hangon';
catTip = cat;
}
}
if ( catText ) {
var $catLink = $( '<a>' )
.addClass( 'ruwiki-newpages-issue ruwiki-newpages-issue-' + catClass )
.attr( 'href', mw.util.getUrl( 'Категория:' + catTip ) )
.attr( 'target', '_blank' )
.attr( 'title', 'Категория: ' + catTip + ' (откроется в новой вкладке)' )
.text( '(' + catText + ')' );
$li.append( $catLink );
}
}
function addLink( href, content ) {
var $a = $( '<a>' )
.attr( 'href', mw.config.get( 'wgScript' ) + '?' + href )
.html( content );
$li
.find( '.mw-newpages-history a:last' )
.after( ' | ', $a );
}
}
mw.loader.using( [ 'mediawiki.api', 'ext.flaggedRevs.basic', 'mediawiki.util' ], function() {
var api = new mw.Api();
while ( titles.length > 0 ) {
api.get( {
action: 'query',
format: 'json',
prop: [ 'info', 'flagged', 'categories' ],
inprop: [ 'talkid', 'watched' ],
cllimit: 500,
titles: titles.splice( 0, 50 )
} ).done( function( resp ) {
if ( !resp || !( resp = resp.query ) ) {
return;
}
for ( var id in resp.pages ) {
markLink( resp.pages[ id ] );
}
} );
}
} );
}() );
melania
- 2021-03-04
- 1