MediaWiki:Gadget-markadmins.js: Difference between revisions
From Test Wiki
Content deleted Content added
No edit summary |
m Per request from NguoiDungKhongDinhDanh at Test Wiki:Community portal. Attribution: User:NguoiDungKhongDinhDanh/Gadget-markadmins.js Tag: Reverted |
||
Line 1:
// rewritten by [[m:User:Hoo man]]; 2012-08-26, adapted by [[User:Obersachse]], optimized by [[User:Jack who built the house]]
(function () {
var userSet;
var userSetTips = {
'A'
'B'
'C'
'F'
'S'
'SA': '
};
Line 31 ⟶ 30:
);
}
var $links = $content.find('a[title^="User"], a[title^="Talk"]');
if (runNum === 2) {
if ($links.length === prevLinksCount) {
Line 53 ⟶ 50:
}
new mw.Api().get({
action: 'query',
▲ title: 'MediaWiki:Gadget-markadmins.json',
augroup: 'sysop|bureaucrat|checkuser|interface-admin|steward|sysadmin',
}).done(function (ans) {▼
auprop: 'groups',
userSet = ans.userSet;▼
aulimit: 500,
format: 'json',
formatversion: 2
var list = ans.query.allusers,
groups = ['sysop', 'bureaucrat', 'checkuser', 'interface-admin', 'steward', 'sysadmin'],
key = ['A', 'B', 'C', 'F', 'S', 'SA'],
for (let i = 0; i < key.length; i++) {
userSet[key[i]] = [];
}
for (let i = 0; i < list.length; i++) {
for (let j = 0; j < groups.length; j++) {
if (list[i].groups.includes(groups[j])) {
userSet[key[j]].push(list[i].name);
}
}
}
$links.each(function (i, link) {
if (!link.parentNode ||
Line 70 ⟶ 87:
matches = /^User:(.+)|Talk:(.+)/.exec(link.title);
if (!matches) return;
if
if ($(link).parent().hasClass('mw-usertoollinks') || link.textContent.match(/обс/i)) return;
matches[1] = matches[2];
Line 77 ⟶ 93:
return;
}
user = decodeURIComponent(matches[1]);
if (link.href.indexOf('redlink=1') !== -1) {
user = user.replace(/ \([^\)]+\)$/, '');
}
for (flag in userSet) {
if (userSet[flag].indexOf(user) !== -1 && userSetTips[flag]) {
Line 90 ⟶ 106:
}
if (!flags.length) return;
tips = ' (' + tips.join(', ') + ')';
var spanElem = document.createElement('span');
| |||