User:Bosco/MediaWiki:Gadget-MarkRights.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
增加 interface-admin |
per EP |
||
| Line 2: | Line 2: | ||
* 取自 oldid=46135902 |
* 取自 oldid=46135902 |
||
* MediaWiki:Gadget-MarkRights.js |
* MediaWiki:Gadget-MarkRights.js |
||
* 修改自 |
|||
* https://zh.wikipedia.org/w/index.php?title=Draft:MediaWiki:Gadget-MarkRights.js/50678903&oldid=52825311 |
|||
* |
* |
||
* 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户 |
* 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户 |
||
| Line 8: | Line 10: | ||
$(function () { |
$(function () { |
||
var groups = { |
|||
// 全站管理型权限 |
|||
bureaucrat: {list: [], class: "markrights-bureaucrat"}, |
|||
checkuser: {list: [], class: "markrights-checkuser"}, |
|||
oversight: {list: [], class: "markrights-oversight"}, |
|||
sysop: {list: [], class: "markrights-sysop"}, |
|||
'interface-admin': {list: [], class: "markrights-interface-admin"}, |
|||
// 页面管理型权限 |
|||
patroller: {list: [], class: "markrights-patroller"}, |
|||
rollbacker: {list: [], class: "markrights-rollbacker"}, |
|||
autoreviewer: {list: [], class: "markrights-autoreviewer"}, |
|||
// 大量操作型权限 |
|||
accountcreator: {list: [], class: "markrights-accountcreator"}, |
|||
'massmessage-sender': {list: [], class: "markrights-massmessage-sender"}, |
|||
// 确认权限 |
|||
confirmed: {list: [], class: "markrights-confirmed"}, |
|||
// 机器权限 |
|||
bot: {list: [], class: "markrights-bot"}, |
|||
flood: {list: [], class: "markrights-flood"}, |
|||
// IPBE |
|||
'ipblock-exempt': {list: [], class: "markrights-ipblock-exempt"}, |
|||
}; |
|||
var markUG = function () { |
var markUG = function () { |
||
var $users = $('a.mw-userlink:not(.mw-anonuserlink)'); |
var $users = $('a.mw-userlink:not(.mw-anonuserlink)'); |
||
| Line 32: | Line 56: | ||
n++; |
n++; |
||
} |
} |
||
var sysoplist = []; |
|||
var interfaceadminlist = []; |
|||
var bureaucratlist = []; |
|||
var culist = []; |
|||
var oslist = []; |
|||
var plist = []; |
|||
var rlist = []; |
|||
var alist = []; |
|||
var ipbelist = []; |
|||
var comlist = []; |
|||
var acclist = []; |
|||
var floodlist = []; |
|||
var mmslist = []; |
|||
var botlist = []; |
|||
var done = function () { |
var done = function () { |
||
var j; |
var group, user, j; |
||
for (group in groups) { |
|||
if (groups.hasOwnProperty(group)) { |
|||
for (j=0; j<groups[group].list.length; j++) { |
|||
$('a.mw-userlink[title="User:' + bureaucratlist[j] + '"]').append('<sup style="color:black;">政</sup>'); |
|||
$('a.mw-userlink[title="User:' + groups[group].list[j] + '"]').append('<sup class="' + groups[group].class + '"></sup>'); |
|||
} |
|||
} |
|||
} |
|||
$('a.mw-userlink[title="User:' + culist[j] + '"]').append('<sup style="color:purple;">查</sup>'); |
|||
} |
|||
for (j=0; j<oslist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + oslist[j] + '"]').append('<sup style="color:purple;">监</sup>'); |
|||
} |
|||
for (j=0; j<sysoplist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + sysoplist[j] + '"]').append('<sup style="color:mediumvioletred;">管</sup>'); |
|||
} |
|||
for (j=0; j<interfaceadminlist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + interfaceadminlist[j] + '"]').append('<sup style="color:mediumvioletred;">介</sup>'); |
|||
} |
|||
// 页面管理型权限 |
|||
for (j=0; j<plist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + plist[j] + '"]').append('<sup style="color:sienna;">巡</sup>'); |
|||
} |
|||
for (j=0; j<rlist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + rlist[j] + '"]').append('<sup style="color:sienna;">退</sup>'); |
|||
} |
|||
for (j=0; j<alist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + alist[j] + '"]').append('<sup style="color:sienna;">免</sup>'); |
|||
} |
|||
// 大量操作型权限 |
|||
for (j=0; j<acclist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + acclist[j] + '"]').append('<sup style="color:blue;">创</sup>'); |
|||
} |
|||
for (j=0; j<mmslist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + mmslist[j] + '"]').append('<sup style="color:blue;">发</sup>'); |
|||
} |
|||
// 确认权限 |
|||
for (j=0; j<comlist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + comlist[j] + '"]').append('<sup style="color:green;">确</sup>'); |
|||
} |
|||
// 机器权限 |
|||
for (j=0; j<botlist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + botlist[j] + '"]').append('<sup style="color:blue;">机</sup>'); |
|||
} |
|||
for (j=0; j<floodlist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + floodlist[j] + '"]').append('<sup style="color:mediumvioletred;">机</sup>'); |
|||
} |
|||
// IPBE |
|||
for (j=0; j<ipbelist.length; j++) { |
|||
$('a.mw-userlink[title="User:' + ipbelist[j] + '"]').append('<sup style="color:green;">代</sup>'); |
|||
} |
} |
||
}; |
}; |
||
var process = function (data) { |
var process = function (data) { |
||
var users; |
var users, group; |
||
if (data.query && data.query.users) { |
if (data.query && data.query.users) { |
||
users = data.query.users; |
users = data.query.users; |
||
| Line 110: | Line 78: | ||
var user = users[i]; |
var user = users[i]; |
||
if (user.groups) { |
if (user.groups) { |
||
for (group in groups) { |
|||
if (groups.hasOwnProperty(group) && user.groups.indexOf(group) > -1) { |
|||
groups[group].list.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('interface-admin') > -1) { |
|||
interfaceadminlist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('patroller') > -1) { |
|||
plist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('rollbacker') > -1) { |
|||
rlist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('autoreviewer') > -1) { |
|||
alist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('accountcreator') > -1) { |
|||
acclist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('massmessage-sender') > -1) { |
|||
mmslist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('confirmed') > -1) { |
|||
comlist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('bot') > -1) { |
|||
botlist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('flood') > -1) { |
|||
floodlist.push(user.name); |
|||
} |
|||
if (user.groups.indexOf('ipblock-exempt') > -1) { |
|||
ipbelist.push(user.name); |
|||
} |
} |
||
} |
} |
||
Revision as of 06:23, 8 February 2019
/**
* 取自 oldid=46135902
* MediaWiki:Gadget-MarkRights.js
* 修改自
* https://zh.wikipedia.org/w/index.php?title=Draft:MediaWiki:Gadget-MarkRights.js/50678903&oldid=52825311
*
* 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户
*
*/
$(function () {
var groups = {
// 全站管理型权限
bureaucrat: {list: [], class: "markrights-bureaucrat"},
checkuser: {list: [], class: "markrights-checkuser"},
oversight: {list: [], class: "markrights-oversight"},
sysop: {list: [], class: "markrights-sysop"},
'interface-admin': {list: [], class: "markrights-interface-admin"},
// 页面管理型权限
patroller: {list: [], class: "markrights-patroller"},
rollbacker: {list: [], class: "markrights-rollbacker"},
autoreviewer: {list: [], class: "markrights-autoreviewer"},
// 大量操作型权限
accountcreator: {list: [], class: "markrights-accountcreator"},
'massmessage-sender': {list: [], class: "markrights-massmessage-sender"},
// 确认权限
confirmed: {list: [], class: "markrights-confirmed"},
// 机器权限
bot: {list: [], class: "markrights-bot"},
flood: {list: [], class: "markrights-flood"},
// IPBE
'ipblock-exempt': {list: [], class: "markrights-ipblock-exempt"},
};
var markUG = 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 done = function () {
var group, user, j;
for (group in groups) {
if (groups.hasOwnProperty(group)) {
for (j=0; j<groups[group].list.length; j++) {
$('a.mw-userlink[title="User:' + groups[group].list[j] + '"]').append('<sup class="' + groups[group].class + '"></sup>');
}
}
}
};
var process = function (data) {
var users, group;
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) {
for (group in groups) {
if (groups.hasOwnProperty(group) && user.groups.indexOf(group) > -1) {
groups[group].list.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);
}
};
markUG();
});