Benutzer:Vogone/markAdmins.js

Aus Wikivoyage

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
 //***********************************************************************
 // Skript ursprünglich von [[Benutzer:Euku]], 28. Dez. 2005
 // Adaptierung/zusätzliche Markierungen/Fixes: [[Benutzer:PDD]]
 // Aufgeräumt & beschleunigt: [[Benutzer:Littl]]
 // Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: [[Benutzer:Guandalug]]
 // Anpassung an Wikivoyage: [[Benutzer:Vogone]]
 //***********************************************************************
 
 // <nowiki>
(function(mw, $) {
 	// get URL parameters (used for page type variables)
	var UrlParameters = [];
	readparams();
 
	function readparams() {
		var asReadInUrlParameters;
		var asReadInUrlParameter;
 
		// Get URL parameters
		asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
		for (i = 0; i < asReadInUrlParameters.length; i++) {
			asReadInUrlParameter = asReadInUrlParameters[i].split("=");
			UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
		}
	}
 
	function markAdmins() {
 
		// Variables that should be defined in your common.js
		if (typeof markadmins  == 'undefined')
			markadmins = true;
 
		if (!markadmins) 
			return;
 
		var langUser = "Benutzer:", ns = mw.config.get('wgCanonicalNamespace');
 
		if (typeof marksubpages  == 'undefined')
			marksubpages = false;
		if (typeof dontmarkmyself == 'undefined')
			dontmarkmyself = false;
		if (typeof isSpecial == 'undefined')
			isSpecial = (ns == "Special");
		if (typeof isHistory == 'undefined')
			isHistory = (mw.config.get('wgAction') == 'history'); 
		if (typeof isUserpage == 'undefined')
			isUserpage = ( (ns == "User") || (ns == "User_talk") );
		if (typeof isTalk == 'undefined')
			isTalk = (ns %2 == 1); 
		if (typeof isProject == 'undefined')
			isProject = (ns == "Project");
		if (typeof isHelp == 'undefined')
			isHelp = (ns == "Help");
		if (typeof isDiff == 'undefined')
			isDiff = UrlParameters["diff"];
 
		if (markadmins) {
			// static list
			var admins=["4omni", "AnhaltER1960", "Balou46", "Benreis", "Bujo", "DerFussi", "Mboesch", "Nw520", "RolandUnger", "Scholless", "Zaunk%C3%B6nig"];
			var admins_str = '|'+admins.join('|')+'|';
 
			var renadmins=[];
			var renadmins_str = '|'+renadmins.join('|')+'|';
 
			var bureaucrats=["Balou46", "DerFussi", "RolandUnger"];
			var bureaucrats_str = '|'+bureaucrats.join('|')+'|';
			
			var importers=["Balou46", "DerFussi", "RolandUnger", "Timmaexx"];
			var importers_str = '|'+importers.join('|')+'|';
			
			// Wikimedia Commons admins
			var comadmins=["-revi", "1234qwer1234qwer4", "1Veertje", "32X", "4nn1l2", "99of9", "A.Savin", "AFBorchert", "Achim55", "Ahonc", "Aka", "Alno", "Amada44", "Andre_Carrotflower", "AnRo0002", "Ankry", "Anthere", "AntiCompositeNumber", "Aude", "Beno%C3%AEt_Prieur", "Billinghurst", "Blackcat", "BrightRaven", "Butko", "Captain-tucker", "Christian_Ferrer", "Ciell", "Clpo13", "Common_Good", "CommonsDelinker", "CommonsMaintenanceBot", "Cookie", "CptViraj", "Cromium", "Czar", "D-Kuru", "DMacks", "DaB.", "DarwIn", "Davepape", "David_Levy", "De728631", "DerHexer", "Dharmadhyaksha", "Didym", "Dyolf77", "Ebrahim", "Elcobbola", "Ellin_Beltz", "Ellywa", "Emha", "EugeneZelenko", "Explicit", "Ezarate", "Fitindia", "FunkMonk", "Gbawden", "Geagea", "Geni", "George_Chernilevsky", "Gestumblindi", "Gnangarra", "GPSLeo", "GreenMeansGo", "Grin", "Guanaco", "Hekerui", "Herbythyme", "Hesperian", "Howcheng", "Huntster", "Indeedous", "Infrogmation", "IronGargoyle", "Jameslwoodward", "Jaqen", "Jarekt", "JarrahTree", "Jcornelius", "Jdforrester", "Jean-Fr%C3%A9d%C3%A9ric", "Jianhui67", "Jmabel", "JoKalliauer", "Joergens.mi", "Jon_Kolbert", "Josve05a", "JuTa", "Julo", "Jusjih", "Kaldari", "Kallerna", "King_of_Hearts", "Klemen_Kocjancic", "Krd", "Krinkle", "KrinkleBot", "Kwj2772", "Leit", "Leyo", "Lofty_abyss", "Lymantria", "L%C3%A9na", "MB-one", "MBisanz", "MGA73", "MPF", "Magog_the_Ogre", "Mahagaja", "Maire", "Marcus_Cyron", "Mardetanha", "Masur", "Matanya", "Materialscientist", "Mdaniels5757", "Mhhossein", "Micheletb", "Mike_Peel", "Minorax", "Missvain", "Mitchazenia", "Miya", "Moheen", "Morgankevinj", "Multichill", "Mys_721tx", "Nagy", "NahidSultan", "Nat", "Natuur12", "Neozoon", "Nick", "Notafish", "Odder", "Otourly", "P199", "Pi.1415926535", "PierreSelim", "Pitke", "Platonides", "Poco_a_poco", "Podzemnik", "Polarlys", "Putnik", "Pyb", "Pymouss", "RP88", "Ra%27ike", "Racconish", "Ragesoss", "Rama", "Rastrojo", "Raymond", "Regasterios", "Rehman", "Reinhard_Kraasch", "Rimshot", "Romaine", "Rosenzweig", "Royalbroil", "Rubin16", "Rudolphous", "Ruthven", "Sanandros", "Shizhao", "Spiritia", "Sreejithk2000", "Srittau", "Steinsplitter", "Stifle", "Storkk", "Strakhov", "TadejM", "Taivo", "Tarawneh", "The_Squirrel_Conspiracy", "Themightyquill", "Thibaut120094", "Thuresson", "Tomer_T", "Trijnstel", "Tulsi_Bhagat", "T%C3%BArelio", "VIGNERON", "Wdwd", "Well-Informed_Optimist", "Wikitanvir", "Wutsje", "Yann", "Yasu", "Ymblanter", "Yuval_CT", "Zzyzx11", "%C3%89rico", "%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%B5%D0%BD%D0%BA%D0%BE", "%D8%B9%D9%84%D8%A7%D8%A1"];
			var comadmins_str = '|'+comadmins.join('|')+'|';
			
			// Wikidata admins
			var wdadmins=["%2AYoungjin", "-revi", "1997kB", "Abi%C3%A1n", "Ajraddatz", "AmaryllisGardener", "Ameisenigel", "Andreasmperu", "Ash_Crow", "Ayack", "BRPever", "Bencemac", "Bovlb", "BrokenSegue", "DannyS712", "Dexbot", "Ebrahim", "Ep%C3%ACdosis", "Esteban16", "Emu", "Fralambert", "Fuzheado", "Gnoeee", "HakanIST", "Hasley", "Hazard-SJ", "Jasper_Deng", "Jianhui67", "Ladsgroup", "Lymantria", "Mahir256", "Martin_Urbanec", "Mat%C4%9Bj_Such%C3%A1nek", "Mbch331", "Mike_Peel", "Minorax", "MisterSynergy", "MSGJ", "MsynABot", "Multichill", "Nikki", "Nikosguard", "Okkn", "Pamputt", "Pasleim", "Penn_Station", "Pi_admin_bot", "Romaine", "Rzuwig", "Sannita", "Sotiale", "Stang", "Stanglavine", "Stryn", "Taketa", "Vogone", "Wagino_20100516", "Wiki13", "Ymblanter", "%D7%99%D7%95%D7%A0%D7%94_%D7%91%D7%A0%D7%93%D7%9C%D7%90%D7%A7", "%D8%A8%D8%A7%D8%B3%D9%85", "%D8%B9%D9%84%D8%A7%D8%A1"];
			var wdadmins_str = '|'+wdadmins.join('|')+'|';
 
			// Stewards
			var stewards=["-revi", "AmandaNP", "AntiCompositeNumber", "Base", "BRPever", "Bsadowski1", "Cromium", "Defender", "DerHexer", "HakanIST", "Hasley", "Hoo_man", "Jon_Kolbert", "Linedwell", "MarcGarver", "MarcoAurelio", "Martin_Urbanec", "Masti", "Matanya", "MusikAnimal", "Operator873", "RadiX", "Ruslik0", "Sakretsu", "Schniggendiller", "Sotiale", "Stanglavine", "Stryn", "Tegel", "Teles", "TheresNoTime", "Tks4Fish", "Trijnstel", "Vermont", "Vituzzu", "Wiki13", "Wim_b", "%D8%B9%D9%84%D8%A7%D8%A1"];
			var stewards_str = '|'+stewards.join('|')+'|';
 
			// Ombudsmen
			var ombudsmen=["Ameisenigel", "%C3%89rico", "Faendalimas", "Galahad", "Infinite0694", "JJMC89", "Mykola7", "Olugold", "Udehb", "Zabe"];
			var ombudsmen_str = '|'+ombudsmen.join('|')+'|';
 
			// Global sysops: only mark users who are neither local sysops nor stewards
			var globalsysops=["1234qwer1234qwer4", "Amire80", "Atcovi", "Billinghurst", "Biplab_Anand", "CptViraj", "DARIO SEVERI", "Daniuu", "DannyS712", "Iluvatar", "Infinite0694", "MF-Warburg", "Minorax", "Mtarch11", "NahidSultan", "Praxidicae", "Samuele2002", "Savh", "Shanmugamp7", "Superpes15", "Turkmen", "Uncitoyen", "WhitePhosphorus", "WikiBayer"];
			var globalsysops_str = '|'+globalsysops.join('|')+'|';
 
			if (typeof markatxt == 'undefined')
				markatxt = "A";
			if (typeof markrenatxt == 'undefined')
				markrenatxt = "A-Ren";
			if (typeof markbureautxt == 'undefined')
				markbureautxt = "B";
			if (typeof markimptxt == 'undefined')
				markimptxt = "I";
			if (typeof markcomatxt == 'undefined')
				markcomatxt = "Com-A";
			if (typeof markwdatxt == 'undefined')
				markwdatxt = "WD-A";
			if (typeof markstewtxt == 'undefined')
				markstewtxt = "S";
			if (typeof markombtxt == 'undefined')
				markombtxt = "Omb";
			if (typeof markgstxt == 'undefined')
				markgstxt = "GS";
		}
 
		if (isSpecial || isHistory || isUserpage || isTalk || isProject || isHelp || isDiff) {
			var i;
			var aNode;
			var allanchors = document.getElementsByTagName("A");
			var searchExp = /.wiki.Benutzer.(.+)/;
			var trenn="/wiki/" + langUser;
			var marker;
			var mainpageanchor;
 
			mw.util.addCSS('span.adminMark { font-weight: bold; }');
			for (i=0; i < allanchors.length; i++) {
				aNode = allanchors[i];
				mainpageanchor = true;
				// if it's a link to a user
				if ((href = aNode.getAttribute("href")) && (href.indexOf(trenn) != -1)) {
					currUser = searchExp.exec(href)[1];
					/* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,'');
					if (currUserClean != currUser) mainpageanchor = false;
					currUser= "|" + currUserClean + "|";
					marker = [];
 
					if (markadmins) {
						// is this user an admin?
						if (admins_str.indexOf(currUser) != -1) marker.push(markatxt); 
						// is this user a renamed admin?
						if (renadmins_str.indexOf(currUser) != -1) marker.push(markrenatxt);         
						// is this user a bureaucrat?
						if (bureaucrats_str.indexOf(currUser) != -1) marker.push(markbureautxt);
						// is this user an importer?
						if (importers_str.indexOf(currUser) != -1) marker.push(markimptxt);
						// is this user a Wikimedia Commons admin?
						if (comadmins_str.indexOf(currUser) != -1) marker.push(markcomatxt);
						// is this user a Wikidata admin?
						if (wdadmins_str.indexOf(currUser) != -1) marker.push(markwdatxt);
						// is this user a steward?
						if (stewards_str.indexOf(currUser) != -1) marker.push(markstewtxt);
						// is this user an ombudsman?
						if (ombudsmen_str.indexOf(currUser) != -1) marker.push(markombtxt);
						// is this user a global sysop?
						if (globalsysops_str.indexOf(currUser) != -1) marker.push(markgstxt);
					}
 
					// don't mark certain pages, except link to user main page
					if (mainpageanchor ||
						(marksubpages && (mw.config.get('wgCanonicalSpecialPageName') != "Prefixindex")
                         && (mw.config.get('wgCanonicalSpecialPageName') != "Allpages")) )
						// check finished, now append node
						if ((marker.length > 0) && !(dontmarkmyself && (currUserClean == mw.config.get('wgUserName')))) {
							// Variante 1 (traditionell)
							// var aMark = document.createElement("b");
							// Variante 2 (vom Erzbischof)
							var aMark = document.createElement("span");
							aMark.className = "adminMark";
 
							var aMarkText = document.createTextNode(" (" + marker.join("/") + ")");
							aMark.appendChild(aMarkText);
							aNode.appendChild(aMark);
						}
				}
			}
		}
	}
 
	mw.loader.using(['mediawiki.util'], function () {
		$(document).ready( markAdmins );
	});
})(mediaWiki, jQuery);
// </nowiki>