MediaWiki:Gadget-markadmins.js: различия между версиями

>Edward Chernenko
м test
Нет описания правки
 
(не показано 128 промежуточных версий 10 участников)
Строка 1: Строка 1:
/* <pre><nowiki> */
mw.loader.using('mediawiki.util', function () {
    var userSet = {
        'К': ['Тэйтанка-птекила'],
        'С': ['Тэйтанка-птекила', 'Dimetr','Dirruw\'o'],
        'М': ['Dimetr', 'Странник27', 'Адмирал Кабаньерро', 'Nihil Omnia', 'Serebr','Dirruw\'o','Тигр амурский'],
        'Б': ['Собака Баскервилей', 'Аманита Мускария', 'Архисубасинреквазипостгиперпсевдодеантимаг', 'Тима Мурашко'],
        'Р': [
        'Звездолет Робота', 'АнтиУчителка', 'Томас Перси', 'RomaWar', 'Баскервильская собака', 'Старварыч', 'Rain Dreamer', 'VanBash', 'Köpleres','Tundrabeaver', // не зарегистрированы после переезда или фактически не имеют флагов
        'Llwy-ar-lawr', 'Vlad26t', 'Alex Skela', 'Funcold', 'Пламен Янаев', 'Не анонимус333', 'Aibolytt', 'Zutio','Vizator','The Cat1987' // зарегистрированы после переезда
        ],
        'А': ['Звездолет Робота', 'Виталик Штепсель-бот', 'Бот-койот', 'Mark I'],
        'Ч': ['Виталик Штепсель'],
        'Ш': ['Сырнийский оракул'],
        'Я': ['Адмирал Кабаньерро']
    };


var admins_str = 'Юрник|Ded_Krapiva|Morley_Dotes|Edward_Chernenko';
    var userSetTip = {
        'К': 'король',
        'С': 'судья',
        'М': 'маркиз',
        'Б': 'барон',
        'Р': 'рыцарь',
        'А': 'автоматон',
        'Ч': 'чародей',
        'Ш': 'шут',
        'Я': 'ясновидец'
    };


function markUsers()
    $(document).ready(function () {
{
        mw.util.$content.find('a').each(function (i, lnk) {
cont = document.getElementById('bodyContent') || document.getElementById('content');
            if (/[?#]/.test(lnk.href) && lnk.href.indexOf('redlink=1') === -1) {
if (!cont) return;
                return;
            }
var admins = admins_str.split('\|')
            var mm, f, user, flags, tips;
            mm = /^Участни(к|ца):(.*)/.exec(lnk.title);
            if (!mm) {
                return;
            }
            user = decodeURIComponent(mm[2]);
            if (lnk.className.indexOf('new') !== -1) {
                user = user.replace(/ \([^\)]+\)$/, '');
            }
            flags = []; tips = [];
            for (f in userSet) {
                if ($.inArray(user, userSet[f]) !== -1) {
                    flags.push(f);
                    tips.push(userSetTip[f]);
                }
            }
            if (!flags.length) {
                return;
            }


var links = cont.getElementsByTagName('A');
            tips = ' (' + tips.join(', ') + ')';
for (i=0; i<links.length; i++)
{
  lnk = links[i];
  if (!lnk.title || ! (mm=lnk.title.match('Участник:(.*)'))) continue;
  if (lnk.href.indexOf('?') != -1) continue;


  user = decodeURIComponent(mm[1]);
            $(lnk)
  if(lnk.className.indexOf('new') != -1)
                .after('\u00A0', '<tt class="userflags" title="' + tips + '">(' + flags.join(',') + ')</tt>')
    user = user.replace(/ \([^\)]+\)$/,'');
                .attr('title', $(lnk).attr('title') + tips);
  user = '\|' + user + '\|'
        });
  if(admins.indexOf(user) > 0)
    });
    lnk.innerHTML = '<span class="admin">' + lnk.innerHTML + '</span>';
});
}
}
addOnloadHook(markUsers);
 
/* </nowiki></pre> */