利用者:Vanished user 1929210/MarkUserRights.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/**
* MarkUserRights.js
*
* It's better to use [[Help:マークアドミン]] instead.
*
* Mark user rights in Recent Changes, Watchlist, History...
*
* Auto-mark:
window.markUserRights = true;
importScript('User:逆襲的天邪鬼/MarkUserRights.js');
* Manual mode:
importScript('User:逆襲的天邪鬼/MarkUserRights.js');
*/
(function () {
var markRights = function () {
var $users = $('a.mw-userlink:not(.mw-anonuserlink)');
var users = {};
$users.each(function (index, link) {
users[link.textContent] = true;
});
var queue1 = [];
var queue2 = [];
var i=0, n=0;
for (var user in users) {
queue1.push(user);
i++;
if (i === 50) {
queue2.push(queue1);
queue1 = [];
n++;
i = 0;
}
}
if (queue1.length > 0) {
queue2.push(queue1);
n++;
}
var sysoplist = [];
var bureaucratlist = [];
var culist = [];
var oslist = [];
var rlist = [];
var dlist = [];
var ilist = [];
var alist = [];
var ipbelist = [];
var extendedconfirmedlist = [];
var done = function () {
var j;
for (j=0; j<bureaucratlist.length; j++) {
$('a.mw-userlink[title="利用者:' + bureaucratlist[j] + '"]').append('<sup style="color:black;">B</sup>');
}
for (j=0; j<culist.length; j++) {
$('a.mw-userlink[title="利用者:' + culist[j] + '"]').append('<sup style="color:purple;">C</sup>');
}
for (j=0; j<oslist.length; j++) {
$('a.mw-userlink[title="利用者:' + oslist[j] + '"]').append('<sup style="color:purple;">O</sup>');
}
for (j=0; j<sysoplist.length; j++) {
$('a.mw-userlink[title="利用者:' + sysoplist[j] + '"]').append('<sup style="color:mediumvioletred;">A</sup>');
}
for (j=0; j<rlist.length; j++) {
$('a.mw-userlink[title="利用者:' + rlist[j] + '"]').append('<sup style="color:sienna;">r</sup>');
}
for (j=0; j<dlist.length; j++) {
$('a.mw-userlink[title="利用者:' + dlist[j] + '"]').append('<sup style="color:sienna;">d</sup>');
}
for (j=0; j<ilist.length; j++) {
$('a.mw-userlink[title="利用者:' + ilist[j] + '"]').append('<sup style="color:sienna;">i</sup>');
}
for (j=0; j<alist.length; j++) {
$('a.mw-userlink[title="利用者:' + alist[j] + '"]').append('<sup style="color:sienna;">a</sup>');
}
for (j=0; j<ipbelist.length; j++) {
$('a.mw-userlink[title="利用者:' + ipbelist[j] + '"]').append('<sup style="color:green;">E</sup>');
}
};
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) {
if (user.groups.indexOf('ipblock-exempt') > -1) {
ipbelist.push(user.name);
}
if (user.groups.indexOf('bureaucrat') > -1) {
bureaucratlist.push(user.name);
}
if (user.groups.indexOf('checkuser') > -1) {
culist.push(user.name);
}
if (user.groups.indexOf('oversight') > -1) {
oslist.push(user.name);
}
if (user.groups.indexOf('sysop') > -1) {
sysoplist.push(user.name);
}
if (user.groups.indexOf('rollbacker') > -1) {
rlist.push(user.name);
}
if (user.groups.indexOf('eliminator') > -1) {
dlist.push(user.name);
}
if (user.groups.indexOf('abusefilter') > -1) {
alist.push(user.name);
}
if (user.groups.indexOf('interface-editor') > -1) {
ilist.push(user.name);
}
}
}
n--;
if (n <= 0) {
done();
}
};
var api = new mw.Api();
for (var j=0; j<queue2.length; j++) {
api.get({
format: 'json',
action: 'query',
list: 'users',
usprop: 'groups',
ususers: queue2[j].join('|')
}).done(process);
}
};
if (window.markUserRights) {
$(function () {
markRights();
});
} else {
$(mw.util.addPortletLink('p-cactions', '#', 'Make user rights')).click(function (e) {
e.preventDefault();
markRights();
$(this).remove();
});
}
})();