User:Bosco/MediaWiki:Gadget-MarkRights.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
Content deleted Content added
建立内容为“/** * 取自 oldid=46107689 * MarkIPBE.js * * 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限…”的新页面
 
原作者请求,把代号改成汉字
Line 45: Line 45:
var j;
var j;
for (j=0; j<bureaucratlist.length; j++) {
for (j=0; j<bureaucratlist.length; j++) {
$('a.mw-userlink[title="User:' + bureaucratlist[j] + '"]').append('<sup style="color:black;">B</sup>');
$('a.mw-userlink[title="User:' + bureaucratlist[j] + '"]').append('<sup style="color:black;"></sup>');
}
}
for (j=0; j<culist.length; j++) {
for (j=0; j<culist.length; j++) {
$('a.mw-userlink[title="User:' + culist[j] + '"]').append('<sup style="color:purple;">C</sup>');
$('a.mw-userlink[title="User:' + culist[j] + '"]').append('<sup style="color:purple;"></sup>');
}
}
for (j=0; j<oslist.length; j++) {
for (j=0; j<oslist.length; j++) {
$('a.mw-userlink[title="User:' + oslist[j] + '"]').append('<sup style="color:purple;">O</sup>');
$('a.mw-userlink[title="User:' + oslist[j] + '"]').append('<sup style="color:purple;"></sup>');
}
}
for (j=0; j<sysoplist.length; j++) {
for (j=0; j<sysoplist.length; j++) {
$('a.mw-userlink[title="User:' + sysoplist[j] + '"]').append('<sup style="color:mediumvioletred;">A</sup>');
$('a.mw-userlink[title="User:' + sysoplist[j] + '"]').append('<sup style="color:mediumvioletred;"></sup>');
}
}


for (j=0; j<plist.length; j++) {
for (j=0; j<plist.length; j++) {
$('a.mw-userlink[title="User:' + plist[j] + '"]').append('<sup style="color:sienna;">p</sup>');
$('a.mw-userlink[title="User:' + plist[j] + '"]').append('<sup style="color:sienna;"></sup>');
}
}
for (j=0; j<rlist.length; j++) {
for (j=0; j<rlist.length; j++) {
$('a.mw-userlink[title="User:' + rlist[j] + '"]').append('<sup style="color:sienna;">r</sup>');
$('a.mw-userlink[title="User:' + rlist[j] + '"]').append('<sup style="color:sienna;">退</sup>');
}
}
for (j=0; j<alist.length; j++) {
for (j=0; j<alist.length; j++) {
$('a.mw-userlink[title="User:' + alist[j] + '"]').append('<sup style="color:sienna;">a</sup>');
$('a.mw-userlink[title="User:' + alist[j] + '"]').append('<sup style="color:sienna;"></sup>');
}
}


for (j=0; j<ipbelist.length; j++) {
for (j=0; j<ipbelist.length; j++) {
$('a.mw-userlink[title="User:' + ipbelist[j] + '"]').append('<sup style="color:green;">E</sup>');
$('a.mw-userlink[title="User:' + ipbelist[j] + '"]').append('<sup style="color:green;"></sup>');
}
}
};
};

Revision as of 03:49, 11 September 2017

/**
 * 取自 oldid=46107689
 * MarkIPBE.js
 *
 * 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户
 *
 */

$(function () {
    var markIPBE = 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 plist = [];
        var rlist = [];
        var alist = [];
        var ipbelist = [];

        var done = function () {
            var j;
            for (j=0; j<bureaucratlist.length; j++) {
                $('a.mw-userlink[title="User:' + bureaucratlist[j] + '"]').append('<sup style="color:black;">政</sup>');
            }
            for (j=0; j<culist.length; j++) {
                $('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<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<ipbelist.length; j++) {
                $('a.mw-userlink[title="User:' + ipbelist[j] + '"]').append('<sup style="color:green;">代</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('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);
                    }
                }
            }

            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);
        }
    };

    markIPBE();
});