MediaWiki:Gadget-markadmins.js: Difference between revisions
From Test Wiki
Content deleted Content added
No edit summary |
updated script ; per request by Bosco at Test Wiki:Community portal. |
||
| (9 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
// rewritten by [[m:User:Hoo man]]; 2012-08-26, adapted by [[User:Obersachse]], optimized by [[User:Jack who built the house]] |
// rewritten by [[m:User:Hoo man]]; 2012-08-26, adapted by [[User:Obersachse]], optimized by [[User:Jack who built the house]] |
||
| ⚫ | |||
(function () { |
(function () { |
||
var userSet; |
var userSet; |
||
var users_talkLinkOnly; |
|||
var userSetTips = { |
var userSetTips = { |
||
'A' : 'administrator', |
'A' : 'administrator', |
||
' |
'AF': 'abusefilter-admin', |
||
' |
'B' : 'bureaucrat', |
||
' |
'CU' : 'checkuser', |
||
' |
'EA': 'election administrator', |
||
' |
'IA' : 'interface administrator', |
||
'IWA' : 'interwiki administrator', |
|||
'NSS': 'non-steward suppressor', |
|||
'OS': 'suppressor', |
|||
'S' : 'steward', |
|||
'SA': 'system administrator', |
|||
}; |
}; |
||
| Line 31: | Line 35: | ||
); |
); |
||
} |
} |
||
var $links = $content.find('a[title^="User"], a[title^="Talk"]'); |
var $links = $content.find('a[title^="User"], a[title^="Talk"]'); |
||
| ⚫ | |||
if (runNum === 2) { |
if (runNum === 2) { |
||
if ($links.length === prevLinksCount) { |
if ($links.length === prevLinksCount) { |
||
| Line 53: | Line 55: | ||
} |
} |
||
new mw.Api().get({ |
|||
$.getJSON(mw.util.wikiScript(), { |
|||
action: 'query', |
|||
| ⚫ | |||
list: 'allusers', |
|||
augroup: 'sysop|abusefilter-admin|bureaucrat|checkuser|electionadmin|interface-admin|interwiki-admin|non-stewardsuppress|suppress|steward|sysadmin', |
|||
| ⚫ | |||
auprop: 'groups', |
|||
| ⚫ | |||
aulimit: 500, |
|||
users_talkLinkOnly = ans.users_talkLinkOnly; |
|||
format: 'json', |
|||
formatversion: 2 |
|||
| ⚫ | |||
var list = ans.query.allusers, |
|||
groups = ['sysop', 'abusefilter-admin', 'bureaucrat', 'checkuser', 'electionadmin', 'interface-admin', 'interwiki-admin', 'non-stewardsuppress', 'suppress', 'steward', 'sysadmin'], |
|||
key = ['A', 'AF', 'B', 'CU', 'EA', 'IA', 'IWA', 'NSS', 'OS', 'S', 'SA'], |
|||
| ⚫ | |||
| ⚫ | |||
for (var i = 0; i < key.length; i++) { |
|||
userSet[key[i]] = []; |
|||
} |
|||
for (var i = 0; i < list.length; i++) { |
|||
for (var 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) { |
$links.each(function (i, link) { |
||
if (!link.parentNode || |
if (!link.parentNode || |
||
| Line 70: | Line 92: | ||
matches = /^User:(.+)|Talk:(.+)/.exec(link.title); |
matches = /^User:(.+)|Talk:(.+)/.exec(link.title); |
||
if (!matches) return; |
if (!matches) return; |
||
if |
if (matches[2]) { |
||
| ⚫ | |||
if ($(link).parent().hasClass('mw-usertoollinks') || link.textContent.match(/обс/i)) return; |
if ($(link).parent().hasClass('mw-usertoollinks') || link.textContent.match(/обс/i)) return; |
||
matches[1] = matches[2]; |
matches[1] = matches[2]; |
||
| Line 77: | Line 98: | ||
return; |
return; |
||
} |
} |
||
| ⚫ | |||
user = decodeURIComponent(matches[1]); |
user = decodeURIComponent(matches[1]); |
||
if (link.href.indexOf('redlink=1') !== -1) { |
if (link.href.indexOf('redlink=1') !== -1) { |
||
user = user.replace(/ \([^\)]+\)$/, ''); |
user = user.replace(/ \([^\)]+\)$/, ''); |
||
} |
} |
||
for (flag in userSet) { |
for (flag in userSet) { |
||
if (userSet[flag].indexOf(user) !== -1 && userSetTips[flag]) { |
if (userSet[flag].indexOf(user) !== -1 && userSetTips[flag]) { |
||
| Line 90: | Line 111: | ||
} |
} |
||
if (!flags.length) return; |
if (!flags.length) return; |
||
tips = ' (' + tips.join(', ') + ')'; |
tips = ' (' + tips.join(', ') + ')'; |
||
var spanElem = document.createElement('span'); |
var spanElem = document.createElement('span'); |
||