Gebruiker:Velocitas/sysopdetector.js
Opmerking: na het publiceren moet je misschien je browsercache legen om de veranderingen te zien.
- Firefox / Safari: houd Shift ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
- Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
- Edge: houd Ctrl ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5.
/* Modified version of User:Splarka/sysopdectector.js
Sysop decrier/detector (rights group displayer), version [0.2.0a]
Originally from http://en.wiki.x.io/wiki/User:Splarka/sysopdectector.js
Notes:
* Fixed this up to use the new API fun stuffs.
* Shows all groups now
* nstab-user isn't available in all skins, all skins have at least one h1 or h2 I believe.
* heading given class="detected-userrights-heading" and text in span class="detected-userrights"
Options:
* Now supports an option system.
* By setting a datalet true it shows in the header instead of the title.
* Note, 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((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && wgTitle.indexOf('/') == -1 && (wgAction != 'edit' || wgAction != 'submit')) addOnloadHook(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(wgTitle);
mw.loader.load(url);
}
function showUserGroupsCB(obj) {
var show = window.showUserGroupSettings || false;
if(!obj['query'] || !obj['query']['users']) return
var user = obj['query']['users'];
if(user.length == 0) return
user = user[0];
var someHeading = document.getElementsByTagName('h1')[0] || document.getElementsByTagName('h2')[0]
if(!someHeading) return
var span = document.createElement('span');
var title = 'User:' + user['name'] + ' ';
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']) {
if(show && show.groups || !show) text += ('[' + user['groups'].slice(2) + '] ').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] '
}
}
span.setAttribute('style','font-size:80%;');
span.setAttribute('class','detected-userrights');
span.appendChild(document.createTextNode(text));
someHeading.appendChild(span);
someHeading.setAttribute('title',title);
someHeading.className += ' detected-userrights-heading';
}