Hauptmenü öffnen

Änderungen

VL:MarkAdmins.js

9.562 Bytes hinzugefügt, 23:15, 20. Mär. 2019
Die Seite wurde neu angelegt: „//*********************************************************************** // Skript ursprünglich von Benutzer:Euku, 28. Dez. 2005 // Ex-Admin-Markierung…“
//***********************************************************************
// 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]]
//***********************************************************************

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

// </nowiki>