Benutzer:BenBE1987/monobook.js/markadmins.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
addOnloadHook(function() {
	var ajax = null;
	var users = [];
 
	function userNameEscape(name) {
		function hex(i) {
			var h = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
			return h[i >> 4] + h[i & 15];
		}
		var res = [];
		for(var h = 0; h<name.length; h++) {
			var i = name.charCodeAt(h);
			     if(i<33)    { res.push('_'); }
			else if(i<128)   { res.push(name[h]); }
			else if(i<2048)  { res.push('%', hex(0xC0+(i>>6)),  '%', hex(0x80+(i&0x3F))); }
			else if(i<65536) { res.push('%', hex(0xE0+(i>>12)), '%', hex(0x80+(i>>6&0x3F)),  '%', hex(0x80+(i&0x3F))); }
			else             { res.push('%', hex(0xF0+(i>>18)), '%', hex(0x80+(i>>12&0x3F)), '%', hex(0x80+(i>>6&0x3F)), '%', hex(0x80+(i&0x3F))); }
		}
		return res.join("");
	}
	function newAjax(cont) {
		ajax = sajax_init_object();
		if(!ajax) { return false; }
		var s = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+"/api.php?action=query&list=allusers&"+
			"augroup=sysop&aulimit=500&format=xml" + (cont ? "&aufrom=" + cont : "");
		ajax.open("GET", s, true);
		ajax.onreadystatechange = callback;
		return true;
	}
	function cssIt() {
		var user, usertalk;
		function decorate(name) {
			return 'a[href="' + user+name + '"], a[href="' + usertalk+name + '"]';
		}
 
		ajax = null;
		if(users.length == 0) { return; }
		user = document.getElementById("pt-userpage");
		if(!user) { return; }
		usertalk = document.getElementById("pt-mytalk");
		if(!usertalk) { return; }
		user = user.getElementsByTagName("a")[0].getAttribute("href");
		user = user.substring(0, user.indexOf(":") + 1);
		usertalk = usertalk.getElementsByTagName("a")[0].getAttribute("href");
		usertalk = usertalk.substring(0, usertalk.indexOf(":") + 1);
 
		var s = users.map(decorate).join(",\n") + " { border-bottom:solid 1px #ff0040; }";
		var css = document.createElement("style");
		css.appendChild(document.createTextNode(s));
		css.setAttribute("type", "text/css");
		var head = document.getElementsByTagName("head")[0];
		head.appendChild(css);
	}
	function callback() {
		if(ajax.readyState != 4) { return; }
		try {
			var api = ajax.responseXML.getElementsByTagName("api")[0];
			var userL = api.getElementsByTagName("u");
			for(var i = 0; i<userL.length; i++) {
				users.push(userNameEscape(userL[i].getAttribute("name")));
			}
			var cont = api.getElementsByTagName("query-continue");
			if(cont.length == 1) {
				cont = cont[0].getElementsByTagName("allusers")[0].getAttribute("aufrom");
				if(newAjax(cont)) {
					ajax.send(null);
				} else {
					cssIt();
				}
			} else {
				cssIt();
			}
		} catch(e) {
			cssIt();
		}
	}
 
	if(!newAjax()) { return; }
	ajax.send(null);
});