From SCP: Secret Laboratory Hub Wiki
No edit summary |
No edit summary |
||
Line 43: | Line 43: | ||
action: 'query', | action: 'query', | ||
list: 'globalallusers', | list: 'globalallusers', | ||
agugroup: ' | agugroup: 'Steward', | ||
agulimit: 'max', | agulimit: 'max', | ||
maxage: 43200, | maxage: 43200, | ||
Line 51: | Line 51: | ||
this.queries++; | this.queries++; | ||
jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { | jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { | ||
that.addCentralToList( result, ' | that.addCentralToList( result, 'nick_steward' ); | ||
} ); | } ); | ||
Line 66: | Line 66: | ||
jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { | jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { | ||
that.addCentralToList( result, 'nick_global-sysop' ); | that.addCentralToList( result, 'nick_global-sysop' ); | ||
} ); | |||
var request = { | |||
action: 'query', | |||
list: 'globalallusers', | |||
agugroup: 'Wiki_Coordinator', | |||
agulimit: 'max', | |||
maxage: 43200, | |||
smaxage: 600, | |||
format: 'json' | |||
}; | |||
this.queries++; | |||
jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { | |||
that.addCentralToList( result, 'nick_wiki-coordinator' ); | |||
} ); | } ); | ||
Revision as of 17:41, 31 August 2018
// Original author: [[pl:User:Beau]] // Modified and improved by: [[pl:User:Zabshk]] if ( typeof( cn$replacement ) == "undefined" ) { window.cn$replacement = {}; } if ( typeof( cn$class ) == "undefined" ) { window.cn$class = {}; } window.coloredNicknamesGadget = { queries: 0, loaded: false, cache: {}, list: {}, version: 10, userLink: /(User|Użytkownik)/, contribLink: /(Special:Contributions|Specjalna:Wkład)/, init: function() { var that = this; if ( mw.config.get( 'wgNamespaceNumber' ) > -1 && mw.config.get( 'wgAction' ) != 'history' && (that.findGetParameter( 'diff' ) == null || that.findGetParameter( 'oldid' ) == null ) ) { return; } var request = { action: 'query', list: 'allusers', augroup: 'sysop', aulimit: 'max', maxage: 43200, smaxage: 600, format: 'json' }; this.queries++; jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { that.addToList( result, 'nick_admin' ); } ); var request = { action: 'query', list: 'globalallusers', agugroup: 'Steward', agulimit: 'max', maxage: 43200, smaxage: 600, format: 'json' }; this.queries++; jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { that.addCentralToList( result, 'nick_steward' ); } ); var request = { action: 'query', list: 'globalallusers', agugroup: 'Global_Administrator', agulimit: 'max', maxage: 43200, smaxage: 600, format: 'json' }; this.queries++; jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { that.addCentralToList( result, 'nick_global-sysop' ); } ); var request = { action: 'query', list: 'globalallusers', agugroup: 'Wiki_Coordinator', agulimit: 'max', maxage: 43200, smaxage: 600, format: 'json' }; this.queries++; jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function( result ) { that.addCentralToList( result, 'nick_wiki-coordinator' ); } ); jQuery( document ).ready( function() { that.loaded = true; if ( that.queries == 0 ) { that.doColor(); } } ); }, addToList: function( data, type ) { if ( data ) { for ( id in data.query.allusers ) { var nick = data.query.allusers[id].name; if ( this.list[nick] ) { this.list[nick].push( type ); } else { this.list[nick] = new Array( type ); } } } this.queries--; if ( this.queries == 0 && this.loaded ) { this.doColor(); } }, addCentralToList: function( data, type ) { if ( data ) { for ( id in data.query.globalallusers) { var nick = data.query.globalallusers[id].name; if ( this.list[nick] ) { this.list[nick].push( type ); } else { this.list[nick] = new Array( type ); } } } this.queries--; if ( this.queries == 0 && this.loaded ) { this.doColor(); } }, isIPv4: function( nick ) { return nick.match( /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ ); }, isIPv6: function( nick ) { // Source: http://home.deds.nl/~aeron/regex/ return nick.match( /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i ); }, getUserClass: function( nick ) { if ( nick == null ) { return []; } var userClass = this.cache[nick]; if ( userClass ) { return userClass; } userClass = []; var nc = cn$class[nick]; if ( nc ) { userClass.push( nc ); } if ( this.list[nick] ) { userClass = userClass.concat( this.list[nick] ); } if ( this.isIPv4( nick ) ) { userClass.push( 'nick_ip' ); if ( this.isDynamic( nick ) ) { userClass.push( 'nick_dynamic_ip' ); } } else if ( this.isIPv6( nick ) ) { userClass.push( 'nick_ip' ); } this.cache[nick] = userClass; return userClass; }, findGetParameter: function ( parameterName ) { var result = null, tmp = []; var items = location.search.substr(1).split("&"); for (var index = 0; index < items.length; index++) { tmp = items[index].split("="); if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]); } return result; }, isDynamic: function( ip ) { return false; }, doColor: function() { this.queries = -1; if ( ( typeof dynamicIpsGadget ) == 'object' ) { this.isDynamic = function( ip ) { return dynamicIpsGadget.isDynamic( ip ); } } var links = document.getElementsByTagName( 'a' ); for ( var i = 0; i < links.length; i++ ) { var link = links[i]; if ( !link.href.match( this.userLink ) && !link.href.match( this.contribLink ) ) { continue; } var nick = jQuery( link ).text(); var replacement = cn$replacement[nick]; if ( replacement ) { link.innerHTML = replacement; } var userClass = this.getUserClass( nick ); if ( userClass.length ) { link.className += ' ' + userClass.join( ' ' ); } } this.cache = {}; } }; coloredNicknamesGadget.init();
Cookies help us deliver our services. By using our services, you agree to our use of cookies.
- This page was last edited on 31 August 2018, at 17:41.
- Content is available under CC BY-SA 3.0 unless otherwise noted.
- Privacy policy
- About SCP: Secret Laboratory Hub Wiki
- Disclaimers