MediaWiki:Gadget-markAdmins.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
//***********************************************************************
// Skript ursprünglich von [[Benutzer:Euku]], 28. Dez. 2005
// Adaptierung/zusätzliche Markierungen/Fixes: [[Benutzer:PDD]]
// Aufgeräumt & beschleunigt: [[Benutzer:Littl]]
// Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: [[Benutzer:Guandalug]]
// Anpassung an WikiData: [[User:NordNordWest]]
//***********************************************************************
( function ( mw, $ ) {
function markAdmins( $content ) {
// static list
var admins = [ '*Youngjin', '1997kB', 'Abi%C3%A1n', 'Ajraddatz', 'Ameisenigel', 'AmaryllisGardener', 'Andreasmperu', 'Ayack', 'Bencemac', 'Bovlb', 'BrokenSegue', 'ChristianKl', 'DannyS712', 'Ebrahim', 'Emu', 'EPIC', 'Ep%C3%ACdosis', 'Esteban16', 'Estopedist1', 'FlyingAce', 'Fralambert', 'Fuzheado', 'Gnoeee', 'HakanIST', 'Hasley', 'Hazard-SJ', 'Hjart', 'Infrastruktur', 'Jasper_Deng', 'Jianhui67', 'Koavf', 'KonstantinaG07', 'Ladsgroup', 'Lymantria', 'Madamebiblio', 'Mahir256', 'Martin_Urbanec', 'Mat%C4%9Bj_Such%C3%A1nek', 'Mbch331', 'Mike_Peel', 'Minorax', 'MisterSynergy', 'Mohammed_Qays', 'MSGJ', 'Multichill', 'Nikki', 'Nikosguard', 'Penn_Station', 'Putnik', 'Romaine', 'Rzuwig', 'S8321414', 'Sannita', 'Saroj', 'Sotiale', 'Stang', 'Stryn', 'The_Squirrel_Conspiracy', 'Vargenau', 'Wagino_20100516', 'Wd-Ryan', 'WikiBayer', 'Wolver%C3%A8ne', 'W%C3%BCstenspringmaus', 'Yahya', 'Ymblanter', 'Zafer', '%D7%99%D7%95%D7%A0%D7%94_%D7%91%D7%A0%D7%93%D7%9C%D7%90%D7%A7', '%D8%A8%D8%A7%D8%B3%D9%85', '%D8%B9%D9%84%D8%A7%D8%A1' ];
var admins_str = '|' + admins.join( '|' ) + '|';
var botadmins = [ 'Dexbot', 'MsynABot', 'Pi_admin_bot' ];
var botadmins_str = '|' + botadmins.join( '|' ) + '|';
var renadmins = [ 'Ebraminio', 'Hym411', '%EB%B6%84%EB%8B%B9%EC%84%A0M'];
var renadmins_str = '|' + renadmins.join( '|' ) + '|';
var bureaucrats = [ 'DannyS712', 'Lymantria', 'Ymblanter' ];
var bureaucrats_str = '|' + bureaucrats.join( '|' ) + '|';
var checkusers = [ '1997kB', 'Jasper_Deng', 'Sotiale', '%D8%B9%D9%84%D8%A7%D8%A1' ];
var checkusers_str = '|' + checkusers.join( '|' ) + '|';
var oversights = [ 'Ajraddatz', 'DannyS712', 'Esteban16', 'KonstantinaG07'];
var oversights_str = '|' + oversights.join( '|' ) + '|';
// Wikidata staff members from WMDE
var staff = [ 'Arian_Bozorg_(WMDE)', 'Guergana_Tzatchkova_(WMDE)', 'Itamar_Givon_(WMDE)', 'Jakob_Warkotsch_(WMDE)', 'Lea_Lacroix_(WMDE)', 'Leszek_Manicki_(WMDE)', 'Lucas_Werkmeister_(WMDE)', 'Lydia_Pintscher_(WMDE)', 'Michael_Gro%C3%9Fe_(WMDE)', 'Mohammed_Abdulai_(WMDE)', 'Monica_Pinedo_Bajo_(WMDE)', 'Noa_wmde', 'Ollie_Shotton_(WMDE)', 'Silvan_Heintze_(WMDE)', 'T_Arrow_(WMDE)' ];
var staff_str = '|' + staff.join( '|' ) + '|';
// Stewards
var stewards = ['Ajraddatz', 'Albertoleoncio', 'AmandaNP', 'AntiCompositeNumber', 'Base', 'Bsadowski1', 'DerHexer', 'Elton', 'EPIC', 'HakanIST', 'Hasley', 'Hoo_man', 'JJMC89', 'Johannnes89', 'Jon_Kolbert', 'MarcGarver', 'Martin_Urbanec', 'Masti', 'Melos', 'Mykola7', 'RadiX', 'Sakretsu', 'Schniggendiller', 'Sotiale', 'Stryn', 'Superpes15', 'Tegel', 'Teles', 'Tks4Fish', 'Vermont', 'Wim_b', 'Xaosflux', 'Yahya', '%D8%B9%D9%84%D8%A7%D8%A1' ];
var stewards_str = '|' + stewards.join( '|' ) + '|';
// Ombudsmen
var ombudsmen = [ 'Ameisenigel', 'Arcticocean', 'Daniuu', 'Do%C7%B5u', 'Emufarmers', 'Faendalimas', 'MdsShakil', 'Minorax', 'Nehaoua', 'Renvoy', 'RoySmith', '%E3%81%A0%EF%BC%8A%E3%81%9C' ];
var ombudsmen_str = '|' + ombudsmen.join( '|' ) + '|';
if (
mw.config.get( 'wgCanonicalNamespace' ) === 'Special' ||
mw.config.get( 'wgAction' ) === 'history' ||
mw.config.get( 'wgNamespaceNumber' ) % 2 === 1 ||
mw.config.get( 'wgCanonicalNamespace' ) === 'User' ||
mw.config.get( 'wgCanonicalNamespace' ) === 'Project' ||
mw.config.get( 'wgCanonicalNamespace' ) === 'Help' ||
mw.util.getParamValue( 'diff' ) !== null
) {
var i;
var aNode;
var allanchors = $content.get( 0 ).getElementsByTagName( 'A' );
var searchExp = /.wiki.User.(.+)/;
var trenn = mw.config.get( 'wgArticlePath' ).replace( '$1', mw.config.get( 'wgFormattedNamespaces' )[ 2 ] );
var marker;
var mainpageanchor;
var href;
mw.util.addCSS( 'span.adminMark { font-weight: bold; }' );
for ( i = 0; i < allanchors.length; i++ ) {
aNode = allanchors[ i ];
mainpageanchor = true;
// if it's a link to a user
if ( ( href = aNode.getAttribute( 'href' ) ) && ( href.indexOf( trenn ) !== -1 ) ) {
var exec = searchExp.exec( href );
if(!exec) {
continue;
}
var currUser = exec[ 1 ];
var currUserClean = currUser.replace( /\/.*/, '' );
if ( currUserClean !== currUser ) {
mainpageanchor = false;
}
currUser= '|' + currUserClean + '|';
marker = [];
// is this user an admin?
if ( admins_str.indexOf( currUser ) !== -1 ) {
marker.push( 'A' );
}
// is this user an adminbot?
if ( botadmins_str.indexOf( currUser ) !== -1 ) {
marker.push( 'A-Bot' );
}
// is this user a renamed admin?
if ( renadmins_str.indexOf( currUser ) !== -1 ) {
marker.push( 'A-Ren' );
}
// is this user a bureaucrat?
if ( bureaucrats_str.indexOf( currUser ) !== -1 ) {
marker.push( 'B' );
}
// is this user a checkuser?
if ( checkusers_str.indexOf( currUser ) !== -1 ) {
marker.push( 'CU' );
}
// is this user an oversighter?
if ( oversights_str.indexOf( currUser ) !== -1 ) {
marker.push( 'OS' );
}
// is this user a staff member?
if ( staff_str.indexOf( currUser ) !== -1 ) {
marker.push( 'Staff' );
}
// is this user a steward?
if ( stewards_str.indexOf( currUser ) !== -1 ) {
marker.push( 'S' );
}
// is this user an ombudsman?
if ( ombudsmen_str.indexOf( currUser ) !== -1 ) {
marker.push( 'Omb' );
}
// don't mark certain pages, except link to user main page
if ( mainpageanchor &&
// check finished, now append node
marker.length > 0
) {
// Variante 1 (traditionell)
// var aMark = document.createElement( 'b' );
// Variante 2 (vom Erzbschof)
var aMark = document.createElement( 'span' );
aMark.className = 'adminMark';
var aMarkText = document.createTextNode( ' (' + marker.join( '/' ) + ')' );
aMark.appendChild( aMarkText );
aNode.appendChild( aMark );
}
}
}
}
}
mw.hook( 'wikipage.content' ).add( markAdmins );
}( mediaWiki, jQuery ) );