Benutzer:UT-Bot/markAdmins.js

Hallo, Sie haben hier nach der Bedeutung des Wortes Benutzer:UT-Bot/markAdmins.js gesucht. In DICTIOUS findest du nicht nur alle Wörterbuchbedeutungen des Wortes Benutzer:UT-Bot/markAdmins.js, sondern erfährst auch etwas über seine Etymologie, seine Eigenschaften und wie man Benutzer:UT-Bot/markAdmins.js in der Einzahl und Mehrzahl ausspricht. Hier finden Sie alles, was Sie über das Wort Benutzer:UT-Bot/markAdmins.js wissen müssen. Die Definition des Wortes Benutzer:UT-Bot/markAdmins.js wird Ihnen helfen, beim Sprechen oder Schreiben Ihrer Texte präziser und korrekter zu sein. Wenn Sie die Definition vonBenutzer:UT-Bot/markAdmins.js und die anderer Wörter kennen, bereichern Sie Ihren Wortschatz und verfügen über mehr und bessere sprachliche Mittel.
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// HINWEIS: Dieses Skript ist seit 26.07.2020 unter
// ] eingebunden.
// Es kann somit von allen Benutzern in ihren Einstellungen
// bei den "Helferlein" auf einfache Art und Weise aktiviert werden.
// Zur Hilfe siehe bitte ]
// Noch ein HINWEIS:
// Unter Benutzer:UT-Bot/markAdmins-bak.js habe ich die Version vom
// 28.07.2020 01:53 abgelegt, da ich hier das ganze Gedönse mit 
// CU, OS, SG etc. (aus der WP) eliminieren will. Wir werden das eh
// so schnell nicht benötigen.
//***********************************************************************
 // Skript ursprünglich von ], 28. Dez. 2005
 // Ex-Admin-Markierung von ] und ]
 // Adaptierung/zusätzliche Markierungen/Fixes: ]
 // Aufgeräumt & beschleunigt: ]
 // Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: ]
 // Aus dewiki von Benutzer:PDD/markAdmins.js übernommen und für dewikt angepasst (04.08.2015)
 //***********************************************************************

 // <nowiki>
 
( function ( mw, $ ) {
	function markAdmins( $content ) {

   // 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.
   //
   // die lokalen Benutzergruppen
   // diese sind per Default immer aktiv, müssen bei Bedarf also
   // in der eigenen common.js o. vector.js auf false gesetzt werden,
   // wenn man sie AB-schalten will
   // Der Schalter markadmins bewirkt die ANzeige von
   // Admins, Interface Admins und Bürokraten auf einmal
   var markadmins        = window.markadmins        !== false;
   //
   // markiert ehemalige Bürokraten, per Default aus, kann in der eigenen
   // common.js o. vector.js bei Bedarf auf true gesetzt werden
   var markexbureaucrats = window.markexbureaucrats === true;

   //
   // markiert ehemalige Admins, per Default aus, kann in der eigenen
   // common.js o. vector.js bei Bedarf auf true gesetzt werden
   var markexadmins      = window.markexadmins      === true;

   // die nachfolgenden Benutzergruppen sind per Default NICHT aktiv,
   // müssen also, wenn die Anzeige gewünscht wird,
   // in der eigenen common.js o. vector.js auf true gesetzt werden,
   // wenn man sie AN-schalten will
   //
   // Benutzergruppen aus de.wikipedia
   var markwpadmins      = window.markwpadmins      === true;
   var markwpbureaucrats = window.markwpbureaucrats === true;

   //
   // globale Benutzergruppen
   var markstewards      = window.markstewards      === true;
   var markgladmins      = window.markgladmins      === true;
   var markglrollbacker  = window.markglrollbacker  === true;
   var markombudsman     = window.markombudsman     === true;
   var markrenamers      = window.markrenamers      === true;

   //
   // Admins aus Commons und Wikidate
   var markcomadmins     = window.markcomadmins     === true;
   var markwdadmins      = window.markwdadmins      === true;
   //
   // Schalter, um das Markieren von Unterseiten oder von
   // einem selber zu ermöglichen, sind per Default AUS und
   // müssen bei Bedarf in der eigenen common.js o. vector.js
   // AN-geschaltet werden
   var marksubpages     = window.marksubpages       === true;
   var dontmarkmyself   = window.dontmarkmyself     === true;

   // Die Markierungen dürfen nie leer sein, das wird hier sichergestellt.
   //
   // die lokalen Benutzergruppen
   var markatxt         = window.markatxt         || 'A';
   var markintatxt      = window.markintatxt      || 'IA';
   var markbureautxt    = window.markbureautxt    || 'B';
   var markexatxt       = window.markexatxt       || 'Ex-A';
   var markexbureautxt  = window.markexbureautxt  || 'Ex-B';
   // derzeit nicht aktiv
   //var markrenatxt      = window.markrenatxt      || 'A-Ren';
   // derzeit nicht aktiv

   //
   // Benutzergruppen aus de.wikipedia
   var markwpatxt       = window.markwpatxt       || 'WP-A';
   var markwpbureautxt  = window.markwpbureautxt  || 'WP-B';

   //
   // globale Benutzergruppen
   // but global-renamers are a local group on Meta!
   var markstewtxt      = window.markstewtxt      || 'S';
   var markglatxt       = window.markglatxt       || 'gl-A';
   var markglrollbtxt   = window.markglrollbtxt   || 'gl-R';
   var markombudsmantxt = window.markombudsmantxt || 'Omb';
   var markrenamerstxt  = window.markrenamerstxt  || 'Ren';
   
   //
   // Admins aus Commons und Wikidata
   var markcomatxt      = window.markcomatxt      || 'Com-A';
   var markwdatxt       = window.markwdatxt       || 'WD-A';

// diese Variablen werden einmal täglich in der Nacht von UT-Bot neu ermittelt und bei Bedarf von ihm aktualisiert
// Variablen-A
var admins = ;
var intadmins = ;
var bureaucrats = ;
var wpadmins = ;
var wpbureaucrats = ;
var stewards = ;
var gladmins = ;
var glrollbacker = ;
var comadmins = ;
var wdadmins = ;
var ombudsman = ;
var renamers = ;
// Variablen-E
// die obigen Variablen werden einmal täglich in der Nacht von UT-Bot neu ermittelt und bei Bedarf von ihm aktualisiert

//bei Bedarf von Hand zu ändern
var exadmins = ;
var exbureaucrats = ;
//bei Bedarf von Hand zu ändern

//derzeit inaktive Variablen
//var renadmins = ;
//derzeit inaktive Variablen
// Ende der vordefinierbaren Variablenwerte

   // Vorzeitiger Abbruch, wenn es nichts zu tun gibt.
   if (!markadmins &&
       !markexadmins &&
       !markwpadmins &&
       !markwpbureaucrats &&
       !markstewards &&
       !markgladmins &&
       !markglrollbacker &&
       !markombudsman &&
       !markrenamers &&
       !markcomadmins &&
       !markwdadmins) {
       	  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 isContrib        = mw.config.get('wgCanonicalSpecialPageName') === 'Contributions';
   var isDiff           = mw.util.getParamValue('diff') !== null;

   if (markadmins) {
       //
       var admins_str = '|' + admins.join( '|' ) + '|';
       var intadmins_str = '|' + intadmins.join( '|' ) + '|';
       var bureaucrats_str = '|' + bureaucrats.join( '|' ) + '|';
//       var renadmins_str = '|' + renadmins.join( '|' ) + '|';
   }

   if (markexadmins) {
       var exadmins_str = '|' + exadmins.join( '|' )+ '|';
   }

   if (markexbureaucrats) {
       var exbureaucrats_str = '|' + exbureaucrats.join( '|' ) + '|';
   }

   if (markwpadmins) {
       var wpadmins_str = '|' + wpadmins.join( '|' )+ '|';
   }
   
   if (markwpbureaucrats) {
       var wpbureaucrats_str = '|' + wpbureaucrats.join( '|' ) + '|';
   }

   if (markcomadmins) {
       var comadmins_str = '|'+comadmins.join('|')+'|';
   }

   if (markwdadmins) {
       var wdadmins_str = '|' + wdadmins.join( '|' ) + '|';
   }

   if (markstewards) {
       var stewards_str = '|' + stewards.join( '|' ) + '|';
   }

   if (markgladmins) {
       var gladmins_str = '|' + gladmins.join( '|' ) + '|';
   }

   if (markglrollbacker) {
       var glrollbacker_str = '|' + glrollbacker.join( '|' )+ '|';
   }

   if (markrenamers) {
       var renamers_str = '|' + renamers.join( '|' )+ '|';
   }

   if (markombudsman) {
   	  var ombudsman_str = '|' + ombudsman.join( '|' ) + '|';
   }

   if (isSpecial || isHistory || isUserpage || isTalk || isProject || isFile || isHelp || isDiff) {
      var i;
      var aNode;
      var allanchors;
      var allanchorsuser = ;
      var followupmark;
      //var searchExp = /\/wiki\/Benutzer(in)?(Diskussion)?:(.+)/;
      // Ersetzt, damit (Diskussion) nicht auch markiert wird,
      // etwas weiter unten muss dann auf searchExp.exec(href)
      // umgestellt werden
      var searchExp = /\/wiki\/Benutzer(in)?:(.+)/;
      var searchExpTalk = /Diskussion:/;
      var marker;
      var mainpageanchor;
      var SGSpecial;

      if (isUserpage || isContrib) {
      	// für Benutzerseite u. Spezial:Beiträge die bisherige Methode
        allanchors = document.getElementsByTagName('A');
      } else {
      	// für alle anderen die Methode über mw.hook
        allanchors = $content.get( 0 ).getElementsByTagName( 'A' );
      }

      mw.util.addCSS( 'span.adminMark { font-weight: bold; }' );

      for (i=0; i < allanchors.length; i++) {
         aNode = allanchors;
         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);
             // Ersetzt, damit (Diskussion) nicht auch markiert wird
             // weil etwas weiter oben nun searchExp = /\/wiki\/Benutzer(in)?:(.+)/
             currUser = searchExp.exec(href);
             /* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,'');
             if (currUserClean !== currUser) {
             	mainpageanchor = false;
             }
             if (searchExpTalk.exec(href) !== null) {
             	talkpageanchor = true;
             }

             if (mainpageanchor) {
             	allanchorsuser = currUserClean;
             } else {
             	allanchorsuser = '';
             }

             followupmark = false;
             if (i>0) {
             	if ((currUserClean === allanchorsuser) && talkpageanchor) {
             		followupmark = true;
             	}
             }

             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 interface admin?
                if (intadmins_str.indexOf(currUser) !== -1) {
                	marker.push(markintatxt);
                }
             }

             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);
                }
             }

             if (markwpadmins) {
                // is this user a wikipedia admin?
                if (wpadmins_str.indexOf(currUser) !== -1) {
                	marker.push(markwpatxt);
                }
             }
             
             if (markwpbureaucrats) {
                // is this user a wikipedia bureaucrat?
                if (wpbureaucrats_str.indexOf(currUser) !== -1) {
                	marker.push(markwpbureautxt);
                }
             }

             if (markstewards) {
                // is this user a steward?
                if (stewards_str.indexOf(currUser) !== -1) {
                	marker.push(markstewtxt);
                }
             }
             
             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 (markgladmins) {
                // is this user a global sysop?
                if (gladmins_str.indexOf(currUser) !== -1) {
                	marker.push(markglatxt);
                }
             }
             
             if (markglrollbacker) {
                // is this user a global rollbacker?
                if (glrollbacker_str.indexOf(currUser) !== -1) {
                	marker.push(markglrollbtxt);
                }
             }
             
             if (markrenamers) {
                // is this user a global renamer?
                if (renamers_str.indexOf(currUser) !== -1) {
                	marker.push(markrenamerstxt);
                }
             }

             if (markombudsman) {
                // is this user an ombudsman?
                if (ombudsman_str.indexOf(currUser) !== -1) {
                	marker.push(markombudsmantxt);
                }
             }

             // 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')))) {
                    // Umwandlung, damit der Vergleich mit "mw.config.get('wgUserName')" funktioniert
                    var currUserCleanDecoded = decodeURIComponent(currUserClean).replace(/_/g, ' ');
                    if ((marker.length > 0) && !(dontmarkmyself && (currUserCleanDecoded === 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);
                    }
                }
             }
         }
      }
   }
}

	mw.hook( 'wikipage.content' ).add( markAdmins );

}( mediaWiki, jQuery ) );

 // </nowiki>