Greasy Fork

Greasy Fork is available in English.

自动点名机器人 - acfun.cn

掌门带点名机器人1.0版本

当前为 2021-12-11 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         自动点名机器人 - acfun.cn
// @namespace    http://tampermonkey.net/
// @version      0.17
// @description  掌门带点名机器人1.0版本
// @author       You
// @match        https://live.acfun.cn/live/34905158
// @icon         https://www.google.com/s2/favicons?domain=acfun.cn
// @grant        none
// @license      https://live.acfun.cn/live/34905158
// ==/UserScript==

setTimeout(() => {
  //自动带牌子! (虽然我没办 但你你么你给我带
      fetch(`https://www.acfun.cn/rest/pc-direct/fansClub/fans/medal/wear?uperId=34905158`, {
        method: 'post',
        credentials: 'include',
    })
    var like = function fireKeyEvent(el, evtType, keyCode) {
    var evtObj;
    if (document.createEvent) {
        if (window.KeyEvent) {//firefox 浏览器下模拟事件
            evtObj = document.createEvent('KeyEvents');
            evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0);
        } else {//chrome 浏览器下模拟事件
            evtObj = document.createEvent('UIEvents');
            evtObj.initUIEvent(evtType, true, true, window, 1);
            delete evtObj.keyCode;
            if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode
                Object.defineProperty(evtObj, "keyCode", { value: keyCode });
                Object.defineProperty(evtObj, "key", { value: "KeyL" });
                Object.defineProperty(evtObj, "code", { value: "KeyL" });
                Object.defineProperty(evtObj, "which", { value: "76" });
                Object.defineProperty(evtObj, "target", { value: "notTEXTAREA" });
            } else {
                evtObj.key = String.fromCharCode(keyCode);
            }
            if (typeof evtObj.ctrlKey === 'undefined') {//为了模拟ctrl键
                Object.defineProperty(evtObj, "ctrlKey", { value: true });
            } else {
                evtObj.ctrlKey = true;
            }
        }
        el.dispatchEvent(evtObj);
    } else if (document.createEventObject) {//IE 浏览器下模拟事件
        evtObj = document.createEventObject();
        evtObj.keyCode = keyCode
        el.fireEvent('on' + evtType, evtObj);
    }

    };
    window.setInterval(like, 1000,document.body,'keyup',76);
    window.inputValue = function (dom, st) {
        var evt = new InputEvent('input', {
            inputType: 'insertText',
            data: st,
            dataTransfer: null,
            isComposing: false
        });
        dom.value = st;
        dom.dispatchEvent(evt);
        }


        var targetNode = document.getElementsByClassName("live-feed-messages")[0]
        // 观察者的选项(要观察哪些突变)
        var config = { attributes: true, childList: true, subtree: true };
        var comments=["我来了我来了","我还在","在这在这","我来了","我回来了","不在","1111","????"]
        // 当观察到突变时执行的回调函数

        var callback = function (mutationsList, observer) {
            // Use traditional 'for loops' for IE 11
            console.log(mutationsList);
            console.log(observer);
            mutationsList.forEach(function (item, index) {
                var className = item["addedNodes"][index]["className"]
                if (className == "comment") {
                    console.log(item);
                    var message = item["addedNodes"][index]["innerText"].split(":")[1]

                    if (message.search("来|到|在|这") != -1&&comments.indexOf(message)==-1) {
                        // document.getElementsByClassName('danmaku-input')[1].value=comments[Math.floor(Math.random() * comments.length)]
                        window.inputValue(document.getElementsByClassName('danmaku-input')[1],comments[Math.floor(Math.random() * comments.length)])
                        //document.getElementsByClassName('send-btn')[1].setAttribute("class","send-btn enable")
                        document.getElementsByClassName('send-btn enable')[0].click();
                    }
                }
            })
        };


        // 创建一个链接到回调函数的观察者实例
        var observer = new MutationObserver(callback);

        // 开始观察已配置突变的目标节点
        observer.observe(targetNode, config);
}, 3000);