// ==UserScript== // @name 斗鱼弹幕机器人-hqf // @namespace http://tampermonkey.net/ // @version 0.2 // @description 这是一个简单的斗鱼弹幕机器人 // @author hqf // @match https://www.douyu.com/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/402985/%E6%96%97%E9%B1%BC%E5%BC%B9%E5%B9%95%E6%9C%BA%E5%99%A8%E4%BA%BA-hqf.user.js // @updateURL https://update.greasyfork.icu/scripts/402985/%E6%96%97%E9%B1%BC%E5%BC%B9%E5%B9%95%E6%9C%BA%E5%99%A8%E4%BA%BA-hqf.meta.js // ==/UserScript== (function() { 'use strict'; /** 全局变量 */ var ZhiziData = {myIntervalVal:""}; /** * 创建我的自定义功能区域 */ function createMyArea() { //创建一个div的区域 var div = document.createElement("div"); div.setAttribute("id", "myArea"); var textNode = document.createTextNode("刷屏内容:"); div.appendChild(textNode); document.getElementById("js-player-asideMain").appendChild(div); //加入id属性,便于操作,调试css var divStyle = document.getElementById("myArea").style; divStyle.setProperty("width", "100%"); divStyle.setProperty("height", "66px"); divStyle.setProperty("background", "rgba(0,0,0,0.4)"); divStyle.setProperty("position", "absolute"); divStyle.setProperty("z-index", "9"); divStyle.setProperty("top", "635px"); divStyle.setProperty("color", "blue"); document.getElementById("myArea").innerHTML = editHtml(); } /** * 编写html * @returns {string} */ function editHtml() { var html = ' 弹幕的内容:' + ' '+ '
弹幕间隔/s:' + ' ' + '   '; return html; } /** * 我自己的定时器 * @param charContent 弹幕内容 * @param chatInterval 弹幕间隔 */ function myInterval(changeContentVal, chatIntervalVal){ if (changeContentVal == "") { changeContentVal = "我是机器人,专刷666"; } if (chatInterval == "") { chatInterval = 5; } ZhiziData.myIntervalVal = setInterval(function () { document.getElementsByClassName("ChatSend")[0].children[0].value = changeContentVal; document.getElementsByClassName("ChatSend-button")[0].click() },chatIntervalVal * 1000) } /** * 为开启和关闭按钮,做监听事件 */ function addloseOrOpenAutoChatButtonListener() { //为开启,关闭按钮加入监听事件 document.getElementById('closeOrOpenAutoChatButton').addEventListener('click', function (ev) { var closeOrOpenAutoChatButtonDom = document.getElementById("closeOrOpenAutoChatButton"); if ("开启弹幕自动发送" == closeOrOpenAutoChatButtonDom.textContent) { //开启弹幕发送 var changeContentVal = document.getElementById("changeContent").value; var chatIntervalVal = document.getElementById("chatInterval").value; //将input获取的值,传入定时器内,以改变定时器的内容和定时时长 myInterval(changeContentVal, chatIntervalVal); closeOrOpenAutoChatButtonDom.textContent = "关闭弹幕自动发送"; closeOrOpenAutoChatButtonDom.style.setProperty("background", "blue"); } else { //清除定时器全局定时器 window.clearInterval(ZhiziData.myIntervalVal); closeOrOpenAutoChatButtonDom.textContent = "开启弹幕自动发送"; closeOrOpenAutoChatButtonDom.style.setProperty("background", "#f70"); } }, false); } function initMain() { console.log("初始化函数initMain成功"); //创建我的自定义功能区域 createMyArea(); //加入监听函数 addloseOrOpenAutoChatButtonListener() } //调用初始化函数,掉用 var initSetInterval = setInterval(function () { if (document.getElementById("myArea") == null){ initMain(); }else { console.log("初始化函数成功!") window.clearInterval(initSetInterval); } }, 5 * 1000); })();