2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:梦蝶葬花/common.js

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox/Safari:按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
  • Google Chrome:按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
  • Internet Explorer:按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”
  • Opera:在“工具→首选项”中清除缓存
如果您已登录但该页面出现未登录状态,请尝试在地址栏的地址最后添加代码?_=1来访问最新页面。
添加代码后的本页地址如下:-{R|https://moegirl.icu/User:%E6%A2%A6%E8%9D%B6%E8%91%AC%E8%8A%B1/common.js?_=1}-
mw.loader.load('https://wikiplus-app.com/Main.js');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Krinkle/RTRC.js&action=raw&ctype=text/javascript'); //RTRC(最近更改实时更新)
mw.loader.load('https://zh.wikipedia.org/w/index.php?title=User:Bluedeck/serve/edit-count.js&action=raw&ctype=text/javascript'); //在右上角显示自己的编辑次数
mw.loader.load('http://meta.wikimedia.org/wiki/MediaWiki:Gadget-markblocked.js&action=raw&ctype=text/javascript'); //用删除线表示被封禁的用户
importScriptURI('//en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js&action=raw&ctype=text/javascript'); //wikED

/**
 * 取自中文维基百科 oldid=46107689,有删改
 * 修改:梦蝶葬花;日期:2018年3月11日
 * MarkIPBE.js
 *
 * 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户
 * 修改:取消IPBE、回退员、监督员;巡查豁免权(autopatroll/autoreviewer)改名为优质编辑者(goodeditor):实际上是原来的名单全都清洗了然后改了个名。
 * 
 */

$(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 plist = [];
        var alist = [];

        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<sysoplist.length; j++) {
                $('a.mw-userlink[title="User:' + sysoplist[j] + '"]').append('<sup style="color:orange;">管</sup>');
            }
            for (j=0; j<plist.length; j++) {
                $('a.mw-userlink[title="User:' + plist[j] + '"]').append('<sup style="color:blue;">巡</sup>');
            }
            for (j=0; j<alist.length; j++) {
                $('a.mw-userlink[title="User:' + alist[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('bureaucrat') > -1) {
                        bureaucratlist.push(user.name);
                    }
                    if (user.groups.indexOf('checkuser') > -1) {
                        culist.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('goodeditor') > -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();
});