VL:MarkAdmins.js
Zur Navigation springen
Zur Suche springen
//***********************************************************************
// Skript ursprünglich von Benutzer:Euku, 28. Dez. 2005 // Ex-Admin-Markierung von Benutzer:Sir und Benutzer:Olliminatore // Adaptierung/zusätzliche Markierungen/Fixes: Benutzer:PDD // Aufgeräumt & beschleunigt: Benutzer:Littl // Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: Benutzer:Guandalug //***********************************************************************
// jQuery(document).ready(function() { // Jede der folgenden Variablen kann in der eigenen monobook.js/vector.js/common.js vorbelegt werden. // Getestet wird jeweils die Ausnahme, Standard ist jeweils das Gegenteil davon. var markadmins = window.markadmins !== false; var markcomadmins = window.markcomadmins === true; var markwdadmins = window.markwdadmins === true; var markexadmins = window.markexadmins === true; var markexbureaucrats = window.markexbureaucrats === true; var markarbcom = window.markarbcom !== false; var markoversight = window.markoversight !== false; var markcheckuser = window.markcheckuser !== false; var marksubpages = window.marksubpages === true; var dontmarkmyself = window.dontmarkmyself === true; // Die Markierungen dürfen nie leer sein, das wird hier sichergestellt. var markatxt = window.markatxt || 'A'; var markbureautxt = window.markbureautxt || 'B'; var markstewtxt = window.markstewtxt || 'S'; var markrenatxt = window.markrenatxt || 'A-Ren'; var markcomatxt = window.markcomatxt || 'Com-A'; var markwdatxt = window.markwdatxt || 'WD-A'; var markexatxt = window.markexatxt || 'Ex-A'; var markexbureautxt = window.markexbureautxt || 'Ex-B'; var markoversighttxt = window.markoversighttxt || 'OS'; var markcheckusertxt = window.markcheckusertxt || 'CU'; var markombudsmantxt = window.markombudsmantxt || 'Omb'; var markarbcomtxt = window.markarbcomtxt || 'SG'; // Ende der vordefinierbaren Variablenwerte // Vorzeitiger Abbruch, wenn es nichts zu tun gibt. if (!markadmins && !markcomadmins && !markwdadmins && !markexadmins && !markexbureaucrats) return; var isSpecial = mw.config.get('wgCanonicalNamespace') == "Special"; var isHistory = mw.config.get('wgAction') == 'history'; var isUserpage = mw.config.get('wgCanonicalNamespace') == "User" || mw.config.get('wgCanonicalNamespace') == "User_talk"; var isTalk = mw.config.get('wgNamespaceNumber') % 2 == 1; var isProject = mw.config.get('wgCanonicalNamespace') == "Project"; var isFile = mw.config.get('wgCanonicalNamespace') == "File"; var isHelp = mw.config.get('wgCanonicalNamespace') == "Help"; var isDiff = mw.util.getParamValue('diff') !== null; if (markadmins) { // statische Liste (dynamisch: http://toolserver.org/~aka/dewiki_admins_utf8.txt ) // Stand: 11.03.2016 var admins=new Array("Apollon", "Mario Schmalfuß"); var admins_str = '|'+admins.join('|')+'|'; var bureaucrats=new Array("Apollon"); var bureaucrats_str = '|'+bureaucrats.join('|')+'|'; // Stewards: Abgleich mit http://de.wikipedia.org/w/index.php?title=Spezial%3AGlobale_Benutzerliste&username=&group=steward&limit=100 if (markwdadmins) { // Stand: 11.2.2019 // Notes: Wikibase-Entwickler von WMDE werden nicht gekennzeichnet var wdadmins=new Array(); var wdadmins_str = '|'+wdadmins.join('|')+'|'; } if (markexbureaucrats) { /* seltsame Einträge im [[Wikipedia:Bürokratenlogbuch]] (Februar 2004) scheinen auf E23 und TomK32 als Bürokraten hinzudeuten; hier aber nicht aufgeführt vor Februar 2004: Admin-Flag durch Developer gesetzt, deshalb Manske aufgeführt */ var exbureaucrats=new Array(); var exbureaucrats_str = '|'+exbureaucrats.join('|')+'|'; } // oversight if (markoversight) { // Notes: nö var oversight=new Array(); var oversight_str = '|'+oversight.join('|')+'|'; } var admcheckuser_str = ''; // checkuser if (markcheckuser) { var checkuser=new Array("Apollon"); var admcheckuser=new Array("Apollon"); var checkuser_str = '|'+checkuser.join('|')+'|'; admcheckuser_str = '|'+admcheckuser.join('|')+'|'; } if (isSpecial || isHistory || isUserpage || isTalk || isProject || isFile || isHelp || isDiff) { var i; var aNode; var allanchors = document.getElementsByTagName("A"); var allanchorsuser = new Array(); var followupmark; var searchExp = /\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/; var searchExpTalk = /[ _]Diskussion:/; var marker; var mainpageanchor; var SGSpecial; mw.util.addCSS('span.adminMark { font-weight: bold; background-image:none !important; }'); for (i=0; i < allanchors.length; i++) { aNode = allanchors[i]; mainpageanchor = true; talkpageanchor = false; SGSpecial = false; checkuserSpecial = false; // if it's a link to a user if ((href = aNode.getAttribute("href")) && (searchExp.exec(href) != null)) { currUser = searchExp.exec(href)[3]; /* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,''); if (currUserClean != currUser) mainpageanchor = false; if (searchExpTalk.exec(href) != null) talkpageanchor = true; if (mainpageanchor) allanchorsuser[i] = currUserClean; else allanchorsuser[i] = ""; followupmark = false; if (i>0) if ((currUserClean == allanchorsuser[i-1]) && talkpageanchor) followupmark = true; currUser= "|" + currUserClean + "|"; marker = new Array(); if (admarbcom_str.indexOf(currUser) != -1) { SGSpecial = true; if (markarbcom || markadmins) marker.push(markarbcomtxt + "-" + markatxt); } if (admcheckuser_str.indexOf(currUser) != -1) { checkuserSpecial = true; if (markcheckuser || markadmins) marker.push(markcheckusertxt + "-" + markatxt); } if (markadmins && !SGSpecial && !checkuserSpecial) { // don't mark SG-only Adm twice if (!(admarbcom_str.indexOf(currUser) != -1)) { // 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 steward? if (stewards_str.indexOf(currUser) != -1) marker.push(markstewtxt); // is this user an ombudsman? if (ombudsman_str.indexOf(currUser) != -1) marker.push(markombudsmantxt); // is this user a bureaucrat? if (bureaucrats_str.indexOf(currUser) != -1) marker.push(markbureautxt); } if (markoversight) { // does this user have oversight rights? if (oversight_str.indexOf(currUser) != -1) marker.push(markoversighttxt); } if (markcheckuser && !checkuserSpecial) { // does this user have checkuser rights? if (checkuser_str.indexOf(currUser) != -1) marker.push(markcheckusertxt); } if (markarbcom && !SGSpecial) { // is this user an arbcom member? if (arbcom_str.indexOf(currUser) != -1) marker.push(markarbcomtxt); } if (markcomadmins) { // is this user a commons admin? if (comadmins_str.indexOf(currUser) != -1) marker.push(markcomatxt); } if (markwdadmins) { // is this user a wikidata admin? if (wdadmins_str.indexOf(currUser) != -1) marker.push(markwdatxt); } if (markexadmins) { // was this user an admin? if (exadmins_str.indexOf(currUser) != -1) marker.push(markexatxt); } if (markexbureaucrats) { // was this user a bureaucrat? if (exbureaucrats_str.indexOf(currUser) != -1) marker.push(markexbureautxt); } // don't mark followups if (!followupmark) // 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')))) { var aMark = document.createElement("span"); aMark.className = "adminMark"; var aMarkText = document.createTextNode("\u00A0(" + marker.join("/") + ")"); aMark.appendChild(aMarkText); aNode.appendChild(aMark); } } } } }); //