Difference between revisions of "User:The Happy Flygineer/sysopdetector.js"

From Team Fortress Wiki
Jump to: navigation, search
(Port from English Wikipedia)
(Migrate deprecated functions & variables; see https://www.mediawiki.org/wiki/ResourceLoader/Migration_guide_(users))
 
Line 17: Line 17:
 
*/
 
*/
 
   
 
   
if ((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && (wgTitle.indexOf('/') == -1) && (wgAction == 'view')) {
+
if ((mw.config.get("wgNamespaceNumber") == 2 || mw.config.get("wgNamespaceNumber") == 3) && (mw.config.get("wgTitle").indexOf('/') == -1) && (mw.config.get("wgAction") == 'view')) {
addOnloadHook(showUserGroups);
+
$(document).load(showUserGroups);
 
}
 
}
 
   
 
   
 
function showUserGroups() {
 
function showUserGroups() {
var url = wgServer + wgScriptPath + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(wgTitle);
+
var url = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(mw.config.get("wgTitle"));
importScriptURI(url);
+
mw.loader.load(url);
 
}
 
}
 
   
 
   

Latest revision as of 14:22, 12 March 2018

/* Modified version of User:Splarka/sysopdectector.js
 
Sysop decrier/detector (rights group displayer), version [0.2.0a]
Originally from http://en.wikipedia.org/wiki/User:Splarka/sysopdectector.js
 
Options:
* All are assumed false if omitted. All but 'groups' are assumed false if undefined.
var showUserGroupSettings = {
  'IP':true,
  'unregistered':true,
  'registered':true,
  'groups': true,
  'editcount':true,
  'regdate':true,
  'blocked':true
};
*/
 
if ((mw.config.get("wgNamespaceNumber") == 2 || mw.config.get("wgNamespaceNumber") == 3) && (mw.config.get("wgTitle").indexOf('/') == -1) && (mw.config.get("wgAction") == 'view')) {
	$(document).load(showUserGroups);
}
 
function showUserGroups() {
	var url = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(mw.config.get("wgTitle"));
	mw.loader.load(url);
}
 
function showUserGroupsCB(obj) {
	var show = window.showUserGroupSettings || false;
	if ( obj['query'] && obj['query']['users'] ) { var user = obj['query']['users']; } else { return; }
	if ( user.length > 0 ) { user = user[0]; } else { return; }
	if ( $('h1, h2').length > 0) { var someHeading = $('h1:first') || $('h2:first'); } else { return; }
 
	var title = 'User:' + user['name'] + ' ';
	someHeading.attr('title', title).addClass('detected-userrights-heading');
	var text = ' ';
 
	if (user['invalid'] == '') {
		if (show && show.IP) text += '[IP] ';
		else title += '[invalid or IP username] ';
	} else if (user['missing'] == '') {
		if (show && show.unregistered) text += '[doesn\'t exist] ';
		else title += '[not a registered name] ';
	} else {
		if (show && show.registered) text += '[exists] ';
		else title += '[username registered] ';
		if (user['groups']) {
			user['groups'].splice( user['groups'].indexOf('user') , 1);
			user['groups'].splice( user['groups'].indexOf('*') , 1);
			if ((show && show.groups || !show) && (user['groups'].length > 1)) {
		  		text += ('[' + user['groups'] + '] ').replace(/,/gi, ", ");
			} else {
		  		title += '[' + user['groups'] + '] ';
			}
		}
		if ( user['editcount'] ) {
			if (show && show.editcount) text += '[' + user['editcount'] + ' edits] ';
			else title += '[' + user['editcount'] + ' edits] ';
		}
		if ( user['registration'] ) {
			if (show && show.regdate) text += '[created: ' + user['registration'].split('T')[0] + '] ';
			else title += '[created: ' + user['registration'] + '] ';
		}
		if ( user['blockedby'] ) { 
			if (show && show.blocked) text += '[blocked] ';
			else text += '[currently blocked] ';
		}
	}
	var span = $('<span/>', {
		'text': text, 
		'style':'font-size:80%;', 
		'class':'detected-userrights'
	}).appendTo(someHeading);
}