User:Wetitpig0/MarkRights.js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
// 取自[[User:Vanished user 1929210/js/MarkRights.js]]
/**
* MarkIPBE.js
*
* 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户
*
*/
$(function() {
var t0 = performance.now();
var $users = $('a.mw-userlink:not(.mw-anonuserlink)');
var users = {};
for (var j = 0; j < $users.length; j++) {
users[$users[j].textContent] = true;
}
var queue1 = [], queue2 = [];
var i = 0, k = 0;
var filter = function(n) {
return n;
};
var user;
for (user in users) {
queue1[i] = user;
i++;
if (i === 50) {
queue1 = queue1.filter(filter);
i = queue1.length;
if (i === 50) {
queue2[k] = queue1;
queue1 = [];
i = 0;
k++;
}
}
}
if (queue1.length > 0) {
queue1 = queue1.filter(filter);
queue2[k] = queue1;
k++;
}
var process = function(data) {
var users;
if (data.query && data.query.users) {
users = data.query.users;
} else {
users = [];
}
for (var i = 0; i < users.length; i++) {
var user = users[i];
// 行政員
if (user.groups.indexOf('bureaucrat') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:black;">B</sup>');
}
// 用戶核查員
if (user.groups.indexOf('checkuser') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:purple;">C</sup>');
}
// 監督員
if (user.groups.indexOf('oversight') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:indigo;">O</sup>');
}
// 管理員
if (user.groups.indexOf('sysop') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:mediumvioletred;">A</sup>');
}
// 賬號創建者
if (user.groups.indexOf('accountcreator') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:Olive;">c</sup>');
}
// 大量信息發送者
if (user.groups.indexOf('massmessage') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:DeepPink;">M</sup>');
}
// 文件移動員
if (user.groups.indexOf('filemove') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:DarkMagenta;">F</sup>');
}
// 介面管理員
if (user.groups.indexOf('interface-admin') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:SlateGray;">1</sup>');
}
// 巡查員
if (user.groups.indexOf('patroller') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:sienna;">p</sup>');
}
// 回退員
if (user.groups.indexOf('rollbacker') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:saddlebrown;">r</sup>');
}
// 巡查豁免者
if (user.groups.indexOf('autoreviewer') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:chocolate;">a</sup>');
}
// IP封禁豁免者
if (user.groups.indexOf('ipblock-exempt') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:green;">E</sup>');
}
// 機器人
if (user.groups.indexOf('bot') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:Crimson;">b</sup>');
}
// 自動確認用戶
if (user.groups.indexOf('autoconfirmed') > -1) {
$('a.mw-userlink[title="User:' + user.name + '"]').append('<sup style="color:DodgerBlue;">t</sup>');
}
}
};
var api = new mw.Api();
for (j = 0; j < k; j++) {
api.get({
format: 'json',
action: 'query',
list: 'users',
usprop: 'groups',
ususers: queue2[j].join('|')
}).done(process);
}
console.log(performance.now() - t0);
});