用戶:ChasingAir/js/Quick-Patrol.js

出自維基百科

注意: 保存之後, 倷要清吥瀏覽器嗰緩存才眵得正改嗰內容。 Mozilla / Firefox / Safari: 按到 Shift 接到按刷新(或按吖Ctrl-Shift-R,到蘋果Mac上按Cmd-Shift-R);IE: 按到 Ctrl接到按刷新,或按吖Ctrl-F5Konqueror: 單只要按 刷新Opera: 用戶要到 工具-設置 完全嗰清除緩存。

// 复制并修改自[[Meta:User:Xiplus/js/quick-patrol.js]]
// <nowiki>
(function() {

    function patrol() { // eslint-disable-line no-unused-vars
        let btnid = this.getAttribute('data-btnid');
        let revid = this.getAttribute('data-revid');
        $.ajax({
            type: 'POST',
            url: location.protocol + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php',
            data: {
                'action': 'patrol',
                'format': 'json',
                'revid': revid,
                'token': mw.user.tokens.get('patrolToken')
            },
            success: function success(data) {
                if (data.error !== undefined) {
                    document.all["patrol_" + btnid].innerHTML = "API失败:" + data.error.info;
                    document.all["patrol_" + btnid].style.color = "#F00";
                } else {
                    document.all["patrol_" + btnid].innerHTML = "已巡查";
                    document.all["patrol_" + btnid].style["pointer-events"] = "none";
                    document.all["patrol_" + btnid].style.color = "#888";
                }
            },
            error: function error() {
                document.all["patrol_" + btnid].innerHTML = "Ajax失败";
                document.all["patrol_" + btnid].style.color = "#F00";
            }
        });
    }

    function partolall() { // eslint-disable-line no-unused-vars
        if (!confirm("确定巡查全部,共" + document.getElementsByClassName("not-patrolled").length + "个?"))
            return;
        for (var i = 0; i < document.getElementsByClassName("not-patrolled").length; i++) {
            if (document.all["patrol_" + i].style["pointer-events"] != "none") {
                document.all["patrol_" + i].click();
            }
        }
    }

    if (mw.config.get('wgCanonicalSpecialPageName') === "Newpages") {
        for (var i = 0; i < document.getElementsByClassName("not-patrolled").length; i++) {
            let patrolbtn = $('<a id="patrol_' + i + '" data-btnid="' + i + '" data-revid="' + document.getElementsByClassName("not-patrolled")[i].children[0].href.match(/oldid=(\d+)/)[1] + '">标记该页面为已巡查</a>');
            patrolbtn.on('click', patrol);
            patrolbtn.appendTo(document.getElementsByClassName("not-patrolled")[i]);
        }
        for (var i = 0; ; i++) {
            if (document.all["mw-content-text"].children[i] === undefined) {
                break;
            } else if (document.all["mw-content-text"].children[i].tagName === "UL") {
                let patrolbtn = $('<li><a id="patrol_all">巡查全部页面</a></li>');
                patrolbtn.on('click', partolall);
                patrolbtn.appendTo(document.all["mw-content-text"].children[i]);
            }
        }
    }

}
)();
// </nowiki>