您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
适配斗鱼直播平台的自动弹幕发射器 随机复制复读机 Github:https://github.com/zhenshiluosuo/Storyteller-AutoBarrageForDouyuTV
// ==UserScript== // @icon https://www.douyu.com/favicon.ico // @name 复读机自动弹幕发射器 // @namespace https://github.com/zhenshiluosuo/Storyteller-AutoBarrageForDouyuTV // @namespace https://gf.qytechs.cn/zh-CN/scripts/396928 // @author 闪光魔法师 // @description 适配斗鱼直播平台的自动弹幕发射器 随机复制复读机 Github:https://github.com/zhenshiluosuo/Storyteller-AutoBarrageForDouyuTV // @match *://www.douyu.com/* // @match *://www.youtube.com/* // @version 1.0.0 // @grant none // ==/UserScript== (function () { 'use strict'; let tip = false; let div1 = document.createElement('div');//默认悬浮窗 let div2 = document.createElement('div');//控制台 let css1 = 'background: #FFB5C5;color:#ffffff;overflow: hidden;z-index: 998;position: fixed;padding:5px;text-align:center;width: 85px;height: 22px;border-radius: 5px;right: 10px;top: 72%;' let css2 = 'background: #ffffff;overflow: hidden;z-index: 999;position: fixed;padding:5px;text-align:center;width: 125px;height: 110px;box-sizing: content-box;border: 1px solid #ff921a;border-radius: 5px;right: 10px;top: 72%;display: none;'; let cycle_time;//弹幕周期,单位毫秒 建议设定至6000毫秒以上 过低有系统屏蔽风险 let _cycle_time = 800;//弹幕div定时器 let sentence = "";//复制的弹幕 let interval;//发射定时器 let danmu_interval;//等待弹幕div加载定时器 let _ready = false;//弹幕div加载标记 let div_manmu;//网页弹幕div let div_wenzi;//网页聊天室div let _mode = false;//套娃模式标记 let __mode = false;//复读白字标记 let ___mode = false;//重复复读标记 let website; let ytb_iframe;//ytb直播右侧iframe init();//初始化 //核心功能函数 function init() { let url = window.location.host; if(url === 'www.douyu.com') { website = 0; } else if(url === 'www.youtube.com') { if (window.top !== window.self) { throw new Error('Frame error!'); } website = 3; } div1.id = 'DuLunChe2'; div1.id = 'DuLunChe3'; div1.style.cssText = css1; div2.style.cssText = css2; div1.innerHTML = '复读机控制台'; div2.innerHTML = '<input type="text" style="width: 100px" placeholder="间隔时间(ms)" id="DuLunCheTime1"/><div style="font-size: 10px;margin-bottom: 2px;"><button id="DuLunCheBtn1" style="display: inline-block; background: #f70; color: #FFFFFF; width:50px; height: 25px; margin: 1px;">出动</button><button id="DuLunCheYinCang1" style="display: inline-block; background: #f70; color: #FFFFFF; width:50px; height: 25px; margin: 1px;">隐藏</div></button><div style="color: black;float: left;width: 100%;font-size: 75%;"><span>套娃模式(仅斗鱼):</span><input type="checkbox" id="dlc_btn99" value="0" style=""/></div><div style="color: black;float: left;width: 100%;font-size: 75%;"><span>不复读白字(斗鱼):</span><input type="checkbox" id="dlc_btn98" value="0" style=""/></div><div style="color: black;float: left;width: 100%;font-size: 75%;"><span>不重复复读(斗鱼):</span><input type="checkbox" id="dlc_btn97" value="0" style=""/></div>'; div1.onclick = () => { div2.style.setProperty('display','block'); if(!tip){ tip = true; alert('欢迎使用偶尔更新的复读机自动弹幕发射装置,当前版本V1.0.0,对本插件的意见和问题可以到Github反馈哦,项目地址:https://github.com/zhenshiluosuo/Storyteller-AutoBarrageForDouyuTV/ '); } }; document.body.appendChild(div1); document.body.appendChild(div2); document.getElementById('DuLunCheYinCang1').onclick = () => { div2.style.setProperty('display','none'); }; document.getElementById('DuLunCheBtn1').onclick = () => { if(document.getElementById('DuLunCheBtn1').innerText === '出动') { document.getElementById('DuLunCheBtn1').innerText = '中止'; if(!website) { dy_run(); } else { ytb_run(); } } else finish(); }; document.getElementById('dlc_btn99').onclick = () => { if(document.getElementById('dlc_btn99').checked){ _mode = true; }else{ _mode = false; } }; if(!website) { document.getElementById('dlc_btn98').onclick = () => { if(document.getElementById('dlc_btn98').checked){ __mode = true; }else{ __mode = false; } }; document.getElementById('dlc_btn97').onclick = () => { if(document.getElementById('dlc_btn97').checked){ ___mode = true; }else{ ___mode = false; } }; danmu_interval = setInterval(() => { if(document.getElementsByClassName('danmu-6e95c1')[0].childNodes.length){ div_manmu = document.getElementsByClassName('danmu-6e95c1')[0]; div_wenzi = document.getElementById('js-barrage-list'); div_manmu.addEventListener('DOMNodeInserted', function () { let _sentence = sentence; if(_mode){ if(__mode && 'Barrage-content' === div_wenzi.childNodes[div_wenzi.childNodes.length - 1].getElementsByClassName('Barrage-content')[0].className){ return; } sentence = '@' + div_wenzi.childNodes[div_wenzi.childNodes.length - 1].getElementsByClassName('Barrage-nickName')[0].innerText + div_wenzi.childNodes[div_wenzi.childNodes.length - 1].getElementsByClassName('Barrage-content')[0].innerText; _ready = true; }else{ let len = div_manmu.childNodes.length; if(len){ let _temp = div_manmu.childNodes[Math.floor((Math.random() * len))]; let _color = _temp.style.color; if(!__mode || (__mode && _color.length)){ _ready = true; sentence = _temp.innerText; } } } if(___mode && _ready){ if(_sentence === sentence){ _ready = false; } } },false); clearInterval(danmu_interval); } }, _cycle_time); let ad_i1 = setInterval(() => { if(document.getElementsByClassName('CommonShareDraw')[0].childNodes.length){ document.getElementsByClassName('CommonShareDraw')[0].style.display = 'none' clearInterval(ad_i1); } },1000); } else { } // } //发射弹幕 function dy_run() { let btn = document.getElementsByClassName('ChatSend-button')[0]; let txt = document.getElementsByClassName('ChatSend-txt')[0]; cycle_time = parseInt(document.getElementById('DuLunCheTime1').value); if(cycle_time <= 2999 || !cycle_time) { alert('请珍惜账号 加大发言间隔!'); finish(); document.getElementById('DuLunCheTime1').value = '9999'; return; } interval = setInterval(() => { if(txt.value === '' && _ready && btn.innerHTML === '发送'){//输入框中有内容时等待用户发送完成后再继续 txt.value = sentence; btn.click(); _ready = false; } }, cycle_time); } function ytb_run() { ytb_iframe = document.getElementById('chatframe').contentWindow; let btn = ytb_iframe.document.querySelector('#send-button button'); let txt = ytb_iframe.document.querySelector('#input.yt-live-chat-text-input-field-renderer'); cycle_time = parseInt(document.getElementById('DuLunCheTime1').value); if(!cycle_time) { alert('请设定一个时间间隔!'); finish(); document.getElementById('DuLunCheTime1').value = '9999'; return; } interval = setInterval(() => { let list = ytb_iframe.document.getElementsByClassName('style-scope yt-live-chat-item-list-renderer'); txt.textContent = list[Math.floor(Math.random() * (list.length - 9))].children[1].children[2].innerText; txt.dispatchEvent(new InputEvent('input')); btn.click(); }, cycle_time); } //结束发射 function finish() { document.getElementById('DuLunCheBtn1').innerText = '出动'; clearInterval(interval); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址