您似乎还未注册一个账号?我们强烈推荐您点击此处创建一个账户。|如果您在H萌娘上发现某些内容错误/空缺/不中立,请勇于按右上角编辑按钮!

Widget:Contribution:修订间差异

H萌娘,万物皆可H的百科全书!
跳转到导航 跳转到搜索
imported>=海豚=
无编辑摘要
imported>=海豚=
无编辑摘要
第1行: 第1行:
<script>
<script>
// <pre>
// <pre>
"use strict";
(function() {
$(() => (async () => {
     var magnifierOn = +mw.user.options.get("gadget-userLinkAvatarMagnifier", 0) === 1;
     const target = (document.querySelector('[name="target"]') || {}).value;
    var $window = $(window);
     if (typeof target !== "string" || target.length === 0) {
     var loadingImage = "https://www.hmoegirl.com/images/2/28/Moehime.jpg";
        return;
     $window.on('load.UserLinkAvatar', function() {
     }
        var images = [];
    await mw.loader.using("mw.Api");
        $('.mw-userlink:not(.user-avatar-added)').each(function() {
    if (!(await mw.user.getRights()).includes("apihighlimits")) {
            var item = $(this);
        return;
            var src = mw.config.get("wgServer").replace("www.hmoegirl", "www.hmoegirl") + mw.config.get("wgScriptPath") + '/extensions/Avatar/avatar.php?user=' + encodeURIComponent(item.text());
    }
            var img = $('<img/>').on('error', function() {
    mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath"));
            window.setTimeout(function() {
    mw.loader.using("jquery.tablesorter");
                img.attr('src','https://www.hmoegirl.com/images/2/28/Moehime.jpg') ;
    const upperFirstCase = (s) => /^[a-z]/.test(s) ? s.substring(0, 1).toUpperCase() + s.substring(1) : s;
             
    const api = new mw.Api();
            }, 0);
    const p = $('<fieldset><legend>用户贡献分布</legend><p id="queryContributions">分名字空间展现用户贡献分布(编辑数量多的用户需要较长的时间加载)<button id="confirmQueryContributions"> √ 开始加载</button></fieldset>').insertAfter("#mw-content-text > form").find("#queryContributions");
            }).addClass('userlink-avatar-small').attr({
    p.find("#confirmQueryContributions").on("click", async () => {
                "data-src": src,
        p.text("加载中……");
                "src": loadingImage
        const list = await (async () => {
            });
            const result = [];
 
             const eol = Symbol();
 
             let uccontinue = undefined;
            images.push(img[0]);
            while (uccontinue !== eol) {
            var bigAvatar = $('<span/>').addClass('userlink-avatar');
                 const _result = await api.post({
            item.prepend(bigAvatar.append(img));
                     action: "query",
             item.addClass("user-avatar-added");
                    format: "json",
             if (magnifierOn) {
                     list: "usercontribs",
                 var magnifierImg = $('<img/>', {
                     ucuser: target,
                     attr: {
                    ucprop: "title|flags|patrolled",
                        "data-src": src,
                    uccontinue,
                        "src": loadingImage
                     uclimit: "max",
                     },
                     on: {
                        error: function() {
                        window.setTimeout(function() {
                                magnifierImg.closest('.userlink-avatar-large').remove();
                        }, 0);
                        }
                     }
                 });
                 });
                 if (_result.continue) {
                 images.push(magnifierImg[0]);
                    uccontinue = _result.continue.uccontinue;
                 bigAvatar.on('click', function() {
                    p[0].innerText += "…";
                     window.open(mw.config.get("wgServer").replace("www.hmoegirl", "www.hmoegirl") + mw.config.get("wgScriptPath") + '/index.php?title=Special%3A看头像&user=' + encodeURIComponent(item.text()), '_blank');
                 } else {
                    return false;
                     uccontinue = eol;
                }).append($('<div/>', {
                }
                    attr: {
                result.push(..._result.query.usercontribs);
                        class: 'userlink-avatar-large'
            }
                    }
            return result;
                 }).prepend(magnifierImg)).addClass('userlink-avatar-hover');
        })();
                 item.before(bigAvatar);
        const ns = {
            0: "",
            1: "讨论",
            2: "用户",
            3: "用户讨论",
            4: "H萌娘",
            5: "H萌娘讨论",
            6: "文件",
            7: "文件讨论",
            8: "mediawiki",
            9: "mediawiki讨论",
            10: "模板",
            11: "模板讨论",
            12: "帮助",
            13: "帮助讨论",
            14: "分类",
            15: "分类讨论",
            274: "widget",
            275: "widget_talk",
            710: "timedtext",
            711: "timedtext_talk",
            828: "模块",
            829: "模块讨论",
            2300: "gadget",
            2301: "gadget_talk",
            2302: "gadget_definition",
            2303: "gadget_definition_talk",
        };
        const nslist = {
            0: { count: 0, patrolled: 0, autopatrolled: 0 },
            1: { count: 0, patrolled: 0, autopatrolled: 0 },
            2: { count: 0, patrolled: 0, autopatrolled: 0 },
            3: { count: 0, patrolled: 0, autopatrolled: 0 },
            4: { count: 0, patrolled: 0, autopatrolled: 0 },
            5: { count: 0, patrolled: 0, autopatrolled: 0 },
            6: { count: 0, patrolled: 0, autopatrolled: 0 },
            7: { count: 0, patrolled: 0, autopatrolled: 0 },
            8: { count: 0, patrolled: 0, autopatrolled: 0 },
            9: { count: 0, patrolled: 0, autopatrolled: 0 },
            10: { count: 0, patrolled: 0, autopatrolled: 0 },
            11: { count: 0, patrolled: 0, autopatrolled: 0 },
            12: { count: 0, patrolled: 0, autopatrolled: 0 },
            13: { count: 0, patrolled: 0, autopatrolled: 0 },
            14: { count: 0, patrolled: 0, autopatrolled: 0 },
            15: { count: 0, patrolled: 0, autopatrolled: 0 },
            274: { count: 0, patrolled: 0, autopatrolled: 0 },
            275: { count: 0, patrolled: 0, autopatrolled: 0 },
            710: { count: 0, patrolled: 0, autopatrolled: 0 },
            711: { count: 0, patrolled: 0, autopatrolled: 0 },
            828: { count: 0, patrolled: 0, autopatrolled: 0 },
            829: { count: 0, patrolled: 0, autopatrolled: 0 },
            2300: { count: 0, patrolled: 0, autopatrolled: 0 },
            2301: { count: 0, patrolled: 0, autopatrolled: 0 },
            2302: { count: 0, patrolled: 0, autopatrolled: 0 },
            2303: { count: 0, patrolled: 0, autopatrolled: 0 },
        };
        const global = { patrolled: 0, autopatrolled: 0 };
        await mw.loader.using("jquery.tablesorter");
        const table = $('<table class="wikitable sortable"><thead><tr><th>名字空间</th><th>编辑次数</th><th>被巡次数</th><th>被手动巡查次数</th></tr></thead><tbody></tbody></table>').find("tbody");
        list.forEach((item) => {
            nslist[item.ns].count++;
            if ("patrolled" in item) {
                nslist[item.ns].patrolled++;
                 global.patrolled++;
            }
            if ("autopatrolled" in item) {
                nslist[item.ns].autopatrolled++;
                 global.autopatrolled++;
             }
             }
         });
         });
         p.html(`该用户在本站未被删除的编辑共有${list.length}次(其中有${global.patrolled}次编辑被巡查,${global.patrolled - global.autopatrolled}次编辑被手动巡查)。按名字空间划分如下:`);
         if (typeof window.lazyload === "function") {
         Object.entries(nslist).filter(([, { count }]) => count > 0).sort(([a], [b]) => a - b).forEach(([nsnumber, { count, patrolled, autopatrolled }]) => table.append(`<tr><td data-sort-value="${nsnumber}">${+nsnumber === 0 ? "(主名字空间)" : upperFirstCase(ns[+nsnumber])}</td><td>${count}</td><td>${patrolled}</td><td>${patrolled - autopatrolled}</td></tr>`));
            lazyload(images);
         table.closest("table").insertAfter(p).tablesorter();
         } else {
            images.forEach(function(ele) {
                ele.src = ele.dataset.src;
            });
         }
     });
     });
     p.find("#cancelQueryContributions").on("click", () => {
     $(function() {
         p.closest("fieldset").remove();
         $window.trigger("load.UserLinkAvatar");
     });
     });
})());
})();
// </pre>
// </pre>
</script>
</script>

2021年8月11日 (三) 20:56的版本

<script>

//

(function() {
    var magnifierOn = +mw.user.options.get("gadget-userLinkAvatarMagnifier", 0) === 1;
    var $window = $(window);
    var loadingImage = "https://www.hmoegirl.com/images/2/28/Moehime.jpg";
    $window.on('load.UserLinkAvatar', function() {
        var images = [];
        $('.mw-userlink:not(.user-avatar-added)').each(function() {
            var item = $(this);
            var src = mw.config.get("wgServer").replace("www.hmoegirl", "www.hmoegirl") + mw.config.get("wgScriptPath") + '/extensions/Avatar/avatar.php?user=' + encodeURIComponent(item.text());
            var img = $('<img/>').on('error', function() {
            window.setTimeout(function() {
                	img.attr('src','https://www.hmoegirl.com/images/2/28/Moehime.jpg') ;
               
            }, 0);
            }).addClass('userlink-avatar-small').attr({
                "data-src": src,
                "src": loadingImage
            });


            images.push(img[0]);
            var bigAvatar = $('<span/>').addClass('userlink-avatar');
            item.prepend(bigAvatar.append(img));
            item.addClass("user-avatar-added");
            if (magnifierOn) {
                var magnifierImg = $('<img/>', {
                    attr: {
                        "data-src": src,
                        "src": loadingImage
                    },
                    on: {
                        error: function() {
                        	window.setTimeout(function() {
                                magnifierImg.closest('.userlink-avatar-large').remove();
                        	}, 0);
                        }
                    }
                });
                images.push(magnifierImg[0]);
                bigAvatar.on('click', function() {
                    window.open(mw.config.get("wgServer").replace("www.hmoegirl", "www.hmoegirl") + mw.config.get("wgScriptPath") + '/index.php?title=Special%3A查看头像&user=' + encodeURIComponent(item.text()), '_blank');
                    return false;
                }).append($('<div/>', {
                    attr: {
                        class: 'userlink-avatar-large'
                    }
                }).prepend(magnifierImg)).addClass('userlink-avatar-hover');
                item.before(bigAvatar);
            }
        });
        if (typeof window.lazyload === "function") {
            lazyload(images);
        } else {
            images.forEach(function(ele) {
                ele.src = ele.dataset.src;
            });
        }
    });
    $(function() {
        $window.trigger("load.UserLinkAvatar");
    });
})();
// 

</script> <style> .mw-body-content p { padding: 3px; text-align: center; } </style>