Участник:Всеслав Чародей/Помощник патруля.js
Перейти к навигации
Перейти к поиску
//Помощник патруля
//Включается на страницах историй статей без вторичного патрулирования (устаревшее ПАТ)
//Снимает подсветку с учётных записей владельцев флагов ПАТ и АПАТ, а также с УЗ, содержащих в логине «bot», «бот» или «робо»
//Скопировано со страницы Участник:Мастер_теней/Помощник_патруля.js, автор кода -- Мастер теней.
if( $('body').hasClass('ns-0') && $('body').hasClass('action-history') )
{
//alert('включено');
var history_article = request('https://ru.wikipedia.org/w/index.php?action=history&title=' + mw.config.get( 'wgPageName' ));
var users = history_article.match( /<span\sclass=.flaggedrevs-pending.>.*?title=.Служебная:Вклад\/([A-zА-яЁё0-9\s-]*).>/g );
var t = 0;
var user_list = '';
while (users && users[t])
{
var reg = /Служебная:Вклад\/([A-zА-яЁё0-9\s-]*)/g;
var user = reg.exec(users[t]);
if (user != null )
{
if (user_list.indexOf(user[1] + ';') > -1 ) { t++; continue; }//учётка уже проверена, пропустить итерацию
var user_normal = user[1].toLowerCase();
if (user_normal.indexOf('bot') > -1 || user_normal.indexOf('бот') > -1 || user_normal.indexOf('робо') > -1 || user_normal.indexOf('commonsdelinker') > -1)
{
//console.log(user[1]);
$('a[title="Участник:' + user[1] + '"]').text('БОТ (' + user[1] + ')');
$('a[title="Участник:' + user[1] + '"]').parent().parent().removeClass('flaggedrevs-pending');
}
else
{
var prava = request('https://ru.wikipedia.org/w/api.php?format=xml&action=query&list=users&usprop=groups&ususers=' + user[1]);
var patrol = prava.match( /<g>(editor)<\/g>/ );
if (patrol != null)
{
$('a[title="Участник:' + user[1] + '"]').text('ПАТ (' + user[1] + ')');
$('a[title="Участник:' + user[1] + '"]').parent().parent().removeClass('flaggedrevs-pending');
}
else
{
var autopatrol = prava.match( /<g>(autoreview)<\/g>/ );
if (autopatrol != null)
{
$('a[title="Участник:' + user[1] + '"]').text('АПАТ (' + user[1] + ')');
$('a[title="Участник:' + user[1] + '"]').parent().parent().removeClass('flaggedrevs-pending');
}
}
}
user_list = user_list + user[1] + ';';//отсмотренные учётки
}
t++;
}
function request( URL )
{
var oRequest = new XMLHttpRequest();
oRequest.open('GET', URL, false);
oRequest.send(null);
return oRequest.responseText;
}
}