<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-MarkRights.js</id>
	<title>MediaWiki:Gadget-MarkRights.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-MarkRights.js"/>
	<link rel="alternate" type="text/html" href="https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;action=history"/>
	<updated>2026-05-09T22:13:56Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=23428&amp;oldid=prev</id>
		<title>入我相思门：​创建页面，内容为“/**  * 取自 oldid=46135902  * MediaWiki:Gadget-MarkRights.js  * 修改自  * https://zh.wikipedia.org/w/index.php?title=Draft:MediaWiki:Gadget-MarkRights.js/50678903&amp;oldid=52825311  *  * 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户  *  */  $(function () {     var groups = {         // 全站管理型权限         bureaucrat: {list: [], class: &quot;markrights-bureaucrat&quot;},         checkuser: {list: [],…”</title>
		<link rel="alternate" type="text/html" href="https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=23428&amp;oldid=prev"/>
		<updated>2022-04-30T16:22:25Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;span class=&quot;autocomment&quot;&gt;*  * 取自 oldid=46135902  * MediaWiki:Gadget-MarkRights.js  * 修改自  * https://zh.wikipedia.org/w/index.php?title=Draft:MediaWiki:Gadget-MarkRights.js/50678903&amp;amp;oldid=52825311  *  * 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户  *：​&lt;/span&gt;  $(function () {     var groups = {         // 全站管理型权限         bureaucrat: {list: [], class: &amp;quot;markrights-bureaucrat&amp;quot;},         checkuser: {list: [],…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * 取自 oldid=46135902&lt;br /&gt;
 * MediaWiki:Gadget-MarkRights.js&lt;br /&gt;
 * 修改自&lt;br /&gt;
 * https://zh.wikipedia.org/w/index.php?title=Draft:MediaWiki:Gadget-MarkRights.js/50678903&amp;amp;oldid=52825311&lt;br /&gt;
 *&lt;br /&gt;
 * 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
    var groups = {&lt;br /&gt;
        // 全站管理型权限&lt;br /&gt;
        bureaucrat: {list: [], class: &amp;quot;markrights-bureaucrat&amp;quot;},&lt;br /&gt;
        checkuser: {list: [], class: &amp;quot;markrights-checkuser&amp;quot;},&lt;br /&gt;
        oversight: {list: [], class: &amp;quot;markrights-oversight&amp;quot;},&lt;br /&gt;
        sysop: {list: [], class: &amp;quot;markrights-sysop&amp;quot;},&lt;br /&gt;
        &amp;#039;interface-admin&amp;#039;: {list: [], class: &amp;quot;markrights-interface-admin&amp;quot;},&lt;br /&gt;
        templateeditor: {list: [], class: &amp;quot;markrights-templateeditor&amp;quot;},&lt;br /&gt;
        transwiki: {list: [], class: &amp;quot;markrights-transwiki&amp;quot;},&lt;br /&gt;
        // 页面管理型权限&lt;br /&gt;
        patroller: {list: [], class: &amp;quot;markrights-patroller&amp;quot;},&lt;br /&gt;
        rollbacker: {list: [], class: &amp;quot;markrights-rollbacker&amp;quot;},&lt;br /&gt;
        autoreviewer: {list: [], class: &amp;quot;markrights-autoreviewer&amp;quot;},&lt;br /&gt;
        // 大量操作型权限&lt;br /&gt;
        accountcreator: {list: [], class: &amp;quot;markrights-accountcreator&amp;quot;},&lt;br /&gt;
        &amp;#039;massmessage-sender&amp;#039;: {list: [], class: &amp;quot;markrights-massmessage-sender&amp;quot;},&lt;br /&gt;
        // 确认权限&lt;br /&gt;
        confirmed: {list: [], class: &amp;quot;markrights-confirmed&amp;quot;},&lt;br /&gt;
        autoconfirmed: {list: [], class: &amp;quot;markrights-autoconfirmed&amp;quot;},&lt;br /&gt;
        extendedconfirmed: {list: [], class: &amp;quot;markrights-extendedconfirmed&amp;quot;},&lt;br /&gt;
        // 机器权限&lt;br /&gt;
        bot: {list: [], class: &amp;quot;markrights-bot&amp;quot;},&lt;br /&gt;
        flood: {list: [], class: &amp;quot;markrights-flood&amp;quot;},&lt;br /&gt;
        // IPBE&lt;br /&gt;
        &amp;#039;ipblock-exempt&amp;#039;: {list: [], class: &amp;quot;markrights-ipblock-exempt&amp;quot;},&lt;br /&gt;
    };&lt;br /&gt;
    var markUG = function () {&lt;br /&gt;
        var $users = $(&amp;#039;a.mw-userlink:not(.mw-anonuserlink)&amp;#039;);&lt;br /&gt;
        var users = {};&lt;br /&gt;
        $users.each(function (index, link) {&lt;br /&gt;
            users[link.textContent] = true;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var queue1 = [];&lt;br /&gt;
        var queue2 = [];&lt;br /&gt;
        var i = 0, n = 0;&lt;br /&gt;
        for (var user in users) {&lt;br /&gt;
            queue1.push(user);&lt;br /&gt;
            i++;&lt;br /&gt;
            if (i === 50) {&lt;br /&gt;
                queue2.push(queue1);&lt;br /&gt;
                queue1 = [];&lt;br /&gt;
                n++;&lt;br /&gt;
                i = 0;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if (queue1.length &amp;gt; 0) {&lt;br /&gt;
            queue2.push(queue1);&lt;br /&gt;
            n++;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var getUsername = function (url) {&lt;br /&gt;
            var username = mw.util.getParamValue(&amp;#039;title&amp;#039;, url);&lt;br /&gt;
            var decode1 = function (username) {&lt;br /&gt;
                return decodeURIComponent((function (u) {&lt;br /&gt;
                    try {&lt;br /&gt;
                        return decodeURIComponent(u.replace(&amp;#039;User:&amp;#039;, &amp;#039;&amp;#039;).replace(/_/g, &amp;#039; &amp;#039;));&lt;br /&gt;
                    } catch (e) {&lt;br /&gt;
                        return u.replace(&amp;#039;User:&amp;#039;, &amp;#039;&amp;#039;).replace(/_/g, &amp;#039; &amp;#039;).replace(/%(?!\d+)/g, &amp;#039;%25&amp;#039;);&lt;br /&gt;
                    }&lt;br /&gt;
                })(username))&lt;br /&gt;
            };&lt;br /&gt;
            if (username) {&lt;br /&gt;
                return decode1(username);&lt;br /&gt;
            }&lt;br /&gt;
            username = url.match(/\/wiki\/User:(.+?)$/);&lt;br /&gt;
            var decode2 = function (username) {&lt;br /&gt;
                return decodeURIComponent((function (u) {&lt;br /&gt;
                    try {&lt;br /&gt;
                        return decodeURIComponent(u.replace(/_/g, &amp;#039; &amp;#039;));&lt;br /&gt;
                    } catch (e) {&lt;br /&gt;
                        return u.replace(/_/g, &amp;#039; &amp;#039;).replace(/%(?!\d+)/g, &amp;#039;%25&amp;#039;);&lt;br /&gt;
                    }&lt;br /&gt;
                })(username))&lt;br /&gt;
            };&lt;br /&gt;
            if (username) {&lt;br /&gt;
                return decode2(username[1]);&lt;br /&gt;
            }&lt;br /&gt;
            return null;&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        var done = function () {&lt;br /&gt;
            var group;&lt;br /&gt;
            $(&amp;#039;a.mw-userlink:not(.mw-anonuserlink)&amp;#039;).each(function (i, el) {&lt;br /&gt;
                var username = getUsername($(el).attr(&amp;#039;href&amp;#039;));&lt;br /&gt;
                if (username) {&lt;br /&gt;
                    for (group in groups) {&lt;br /&gt;
                        if (groups.hasOwnProperty(group)) {&lt;br /&gt;
                            if (groups[group].list.indexOf(username) &amp;gt; -1) {&lt;br /&gt;
                                $(el).append(&amp;#039;&amp;lt;sup class=&amp;quot;&amp;#039; + groups[group].class + &amp;#039;&amp;quot;&amp;gt;&amp;lt;/sup&amp;gt;&amp;#039;);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        var process = function (data) {&lt;br /&gt;
            var users, group;&lt;br /&gt;
            if (data.query &amp;amp;&amp;amp; data.query.users) {&lt;br /&gt;
                users = data.query.users;&lt;br /&gt;
            } else {&lt;br /&gt;
                users = [];&lt;br /&gt;
            }&lt;br /&gt;
            for (var i = 0; i &amp;lt; users.length; i++) {&lt;br /&gt;
                var user = users[i];&lt;br /&gt;
                if (user.groups) {&lt;br /&gt;
                    for (group in groups) {&lt;br /&gt;
                        if (groups.hasOwnProperty(group) &amp;amp;&amp;amp; user.groups.indexOf(group) &amp;gt; -1) {&lt;br /&gt;
                            groups[group].list.push(user.name);&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            n--;&lt;br /&gt;
            if (n &amp;lt;= 0) {&lt;br /&gt;
                done();&lt;br /&gt;
            }&lt;br /&gt;
        };&lt;br /&gt;
        var api = new mw.Api();&lt;br /&gt;
        for (var j = 0; j &amp;lt; queue2.length; j++) {&lt;br /&gt;
            api.get({&lt;br /&gt;
                format: &amp;#039;json&amp;#039;,&lt;br /&gt;
                action: &amp;#039;query&amp;#039;,&lt;br /&gt;
                list: &amp;#039;users&amp;#039;,&lt;br /&gt;
                usprop: &amp;#039;groups&amp;#039;,&lt;br /&gt;
                ususers: queue2[j].join(&amp;#039;|&amp;#039;)&lt;br /&gt;
            }).done(process);&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
    mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function(e) {&lt;br /&gt;
        if (e.attr(&amp;#039;id&amp;#039;) === &amp;#039;mw-content-text&amp;#039;) {&lt;br /&gt;
            markUG();&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (e.hasClass(&amp;#039;mw-changeslist&amp;#039;)) markUG();&lt;br /&gt;
    });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>入我相思门</name></author>
	</entry>
</feed>