Jump to content

User:Splarka/sysopdectector.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Splarka (talk | contribs) at 01:49, 26 November 2008 (refactorz). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* Sysop detector, version [0.1.0]
Originally from http://en.wikipedia.org/wiki/User:Splarka/sysopdectector.js

Notes:
* Fixed this up to reflect 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.
*/

if((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && wgTitle.indexOf('/') == -1 && (wgAction != 'edit' || wgAction != 'submit')) addOnloadHook(showUserGroups)
function showUserGroups() {
  var url = wgServer + wgScriptPath + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=86400&smaxage=86400&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(wgTitle);
  importScriptURI(url);
}

function showUserGroupsCB(obj) {
  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 title = '[' + user['name'] + '] ';
  if(user['missing'] == '') {
    someHeading.appendChild(document.createTextNode(' (no such user)'));
    title += 'no such user';
  }
  if(user['editcount']) title += 'Edits: ' + user['editcount'] + '; '
  if(user['registration']) title += 'Created: ' + user['registration'] + '; '
  if(user['groups']) {
    someHeading.appendChild(document.createTextNode(' (' + user['groups'] + ')'));
    title += 'Groups: ' + user['groups'] + '; ';
  }
  someHeading.setAttribute('title',title);
}