Nutza:Chaddy/markAdmins.js

Aus Wikipedia

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
 // 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]]
 // Aus der deutschsprachigen Wikipedia von [[Benutzer:PDD]] übernommen und angepasst: [[Benutzer:Chaddy]]
 //***********************************************************************

 // <nowiki>

 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 markexadmins     = window.markexadmins   === 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 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 && !markexadmins)
       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: 09.06.2012
 var admins=new Array("Bua333", "Chaddy", "El_bes", "Florian_Schott", "Gschupfta_Ferdl", "Holder", "Kazu89", "Matthias_Klostermayr", "Ric");

       var admins_str = '|'+admins.join('|')+'|';

       var bureaucrats=new Array("Bua333", "Holder");
       var bureaucrats_str = '|'+bureaucrats.join('|')+'|';

       // Stewards: Abgleich mit http://de.wikipedia.org/w/index.php?title=Spezial%3AGlobale_Benutzerliste&username=&group=steward&limit=100
       // Datrio,Fantasy: bis 22.12.2007
       // Suisui,Snowdog: bis 1.1.2008
       // Maveric149 (auf meta: Daniel Mayer): nur noch Meta-Steward, nicht Global
       // MBisanz erscheint nicht auf Globaler Benutzerliste
       var stewards=new Array(
        /* global stewards */
       "Andre_Engels", "Avraham", "Axpde", "Barras", "Bencmq", "Bennylin", "Billinghurst", "Bsadowski1", "DerHexer", "Elfix", "Fr33kman", "J.delanoy", "Jusjih", "Jyothis", "Laaknor", "Leinad", "Luckas Blade", "M7", "MarcoAurelio", "Mardetanha", "Matanya", /* "Mav", */ "MBisanz", "Melos", "Mentifisto", "Millosh", "Pathoschild", "PeterSymonds", "Pundit", "Quentinv57", "Ruslik0", "Shizhao", "Snowolf", "Tegel", "Teles", "Trijnstel", "Vituzzu", "Wikitanvir", "Wpedzich");
       var stewards_str = '|'+stewards.join('|')+'|';

       // renames
       // Birnkammer_fabian am 22. Mai 2010 umbenannt zu Birne
       var renadmins=new Array("Birnkammer_fabian");
       var renadmins_str = '|'+renadmins.join('|')+'|';
   }

   if (markcomadmins) {
       // Notes:
       //        MPF-UK = MPF on commons
       //        Raul654: bei uns gesperrt?! (usurped?)
       var comadmins=new Array("1Veertje", "32X", "99of9", "A.Savin", "AFBorchert", "ALE!", "AVRS", "Adrignola", "Ahonc", "Aka", "Ala_z", "Alhen", "Alison", "Alno", "Alpertron", "Amada44", "AnRo0002", "AndreasPraefcke", "Andrew_c", "Angr", "Anthere", "Aude", "Avraham", "Axpde", "AzaToth", "Badseed", "Bapti", "Barcex", "Bastique", "Bdk", "Bencmq", "Benoit_Rochon", "Beria", "Bidgee", "Billinghurst", "Blackcat", "Blacklake", "Blurpeace", "Butko", "Cambalachero", "Captain-tucker", "Cecil", "Chatama", "Chris_73", "ChrisiPK", "ChristianBier", "Ciell", "Cirt", "Common_Good", "CommonsDelinkerHelper", "Cookie", "Courcelles", "Coyau", "D-Kuru", "DaB.", "Dantadd", "Darwinius", "Davepape", "David_Levy", "Dcoetzee", "Denniss", "Dereckson", "Dschwen", "EPO", "EVula", "Edgar181", "Effeietsanders", "Ejdzej", "Elcobbola", "Elitre", "Elya", "%C3%89rico_J%C3%BAnior_Wouters", "Esby", "EugeneZelenko", "Ezarate", "Fanghong", "Fastily", "Flominator", "Foroa", "Funfood", "FunkMonk", "Geagea", "Geni", "GeorgHH", "George_Chernilevsky", "Gestumblindi", "Gmaxwell", "Gnangarra", "Golbez", "Greudin", "Grin", "Gruznov", "Guillom", "H-stt", "Heb", "Herbythyme", "Hesperian", "High_Contrast", "Howcheng", "Hystrix", "Ilmari_Karonen", "INeverCry", "Infrogmation", "J_Milburn", "JDavid", "JGHowes", "Jafeluv", "Jameslwoodward", "Jarekt", "Jastrow", "Jcornelius", "Jdforrester", "Jean-Fr%C3%A9d%C3%A9ric", "JeremyA", "Jmabel", "Joergens.mi", "John_Vandenberg", "JuTa", "Juliancolton", "Julo", "Jusjih", "KTo288", "Kaldari", "Kallerna", "Kanonkas", "Killiondude", "Kjetil_r", "Klemen_Kocjancic", "Krinkle", "Krzysiu", "Kuru", "Kved", "Kwj2772", "Kyro", "Leafnode", "Leit", "Letartean", "Leyo", "Logan", "Lokal_Profil", "LtPowers", "Ludmi%C5%82a_Pilecka", "Ludo29", "Lupo", "Luxo", "Lymantria", "L%C3%A9na", "M0tty", "MBisanz", "MGA73", "MPF-UK", "Magister_Mathematicae", "Magnus_Manske", "Maire", "Marcus_Cyron", "Mardetanha", "Martin_H.", "Masur", "Matanya", "Materialscientist", "Mathonius", "Matt314", "Mattbuck", "Maxim", "Mentifisto", "Micheletb", "Micki", "Mitchazenia", "Miya", "Mmxx", "Morgankevinj", "Mormegil", "Morning_Sunshine", "Multichill", "Mys_721tx", "NEUROtiker", "Nagy", "Neozoon", "Nilfanion", "Notafish", "NuclearWarfare", "O", "Odder", "Okki", "Otourly", "PeterSymonds", "Pharos", "Philosopher", "PierreSelim", "Pitke", "Platonides", "Podzemnik", "Polarlys", "Powerek38", "Pruneau", "PumpkinSky", "Putnik", "Pymouss", "Ra%27ike", "Ragesoss", "Rama", "Rastrojo", "Raul654", "Raymond", "Rd232", "Rehman", "Reinhard_Kraasch", "Rillke", "Rimshot", "Rocket000", "Romaine", "Rosenzweig", "Royalbroil", "Rubin16", "Russavia", "R%C3%BCdiger_W%C3%B6lk", "Saibo", "Sanbec", "Sandstein", "SatuSuro", "Sfu", "Shizhao", "Siebrand", "Skeezix1000", "Spangineer", "Spiritia", "Sreejithk2000", "Stan_Shebs", "Steven_Walling", "Sven_Manguard", "Stifle", "Tabercil", "Tarawneh", "Techman224", "TheDJ", "Thuresson", "Tiptoety", "Tom", "Trijnstel", "Trixt", "Tsca", "T%C3%BArelio", "VIGNERON", "WJBscribe", "Waldir", "Wikitanvir", "Wknight94", "Wpedzich", "Wsiegmund", "Wutsje", "Wuzur", "Wvk", "Yann", "Yuval_Y", "Zirland", "Zolo", "ZooFari", "Zscout370", "Zyephyrus", "Zzyzx11", "%7EPyb", "%C3%81", "Raindrift", "KrinkleBot", "Brion_VIBBER");
       var comadmins_str = '|'+comadmins.join('|')+'|';
   }

   if (markexadmins) {

       var exadmins=new Array("Birne", "Chb", "Emes", "Fantasy", "Libellulia", "LibelluliaBot", "Lou.gruber", "Man77", "Melancholie", "Mucalexx", "Sinnierer");
       var exadmins_str = '|'+exadmins.join('|')+'|';


       // Birnkammer_fabian am 22. Mai 2010 umbenannt zu Birne
       var exbureaucrats=new Array("Birne", "Birnkammer_fabian");
       var exbureaucrats_str = '|'+exbureaucrats.join('|')+'|';
   }

   // oversight
   if (markoversight) {
       // Notes: nö
       var oversight=new Array();
       var oversight_str = '|'+oversight.join('|')+'|';
   }

   // checkuser
   if (markcheckuser) {
       // Notes: nö
       var checkuser=new Array();
       var checkuser_str = '|'+checkuser.join('|')+'|';
   }

   // Ombudspersons: Abgleich mit http://de.wikipedia.org/w/index.php?title=Spezial%3AGlobale_Benutzerliste&username=&group=Ombudsmen
   var ombudsman=new Array("FloNight", "Mwpnl", "Sir48", "Thogo");
   var ombudsman_str = '|'+ombudsman.join('|')+'|';

   if (markarbcom || markadmins) {

       var arbcom=new Array();
       var admarbcom=new Array();

       var arbcom_str = '|'+arbcom.join('|')+'|';
       var admarbcom_str = '|'+admarbcom.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; }');

      for (i=0; i < allanchors.length; i++) {
         aNode = allanchors[i];
         mainpageanchor = true;
         talkpageanchor = false;
         SGSpecial = 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 (markadmins && !SGSpecial) {
                // 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 (markcheckuser) {
                // does this user have checkuser rights?
                if (checkuser_str.indexOf(currUser) != -1) marker.push(markcheckusertxt);
             }

             if (markoversight) {
                // does this user have oversight rights?
                if (oversight_str.indexOf(currUser) != -1) marker.push(markoversighttxt);
             }

             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 (markexadmins) {
                // was this user an admin?
                if (exadmins_str.indexOf(currUser) != -1) marker.push(markexatxt);
                // 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(" (" + marker.join("/") + ")");
                aMark.appendChild(aMarkText);
                aNode.appendChild(aMark);
             }
         }
      }
   }
 });

 // </nowiki>