您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name Twitch Chat Cleverbot // @namespace http://twitchspam.edu/ // @version 0.1 // @description try to take over the world! // @author You // @match https://www.twitch.tv/* // @grant none // ==/UserScript== var victimButton = ".button.float-right.qa-chat-buttons__submit.js-chat-buttons__submit"; var victimChatbox = ".js-chat_input.chat_text_input.mousetrap.ember-view.ember-text-area"; var msg = ''; var author = ''; var minDelay = 10000; var maxDelay = 15000; var inputTimer; var isResponding = false; var atMessage = false; var optionsWindow; var cleverbot_window; $(document).ready(function() { $(document).keypress(function(e) { if(e.keyCode == 96) { loadOptionWindow(); } }); cleverbot_window = window.open('http://www.cleverbot.com/', 'cleverbot'); $(cleverbot_window.document).ready(function() { inputTimer = Date.now() + getRandInt(minDelay, maxDelay); setInterval(spamCleverbot, 1000); }); }); function spamCleverbot() { if(Date.now() > inputTimer && !isResponding) { var chat = document.getElementsByClassName('chat-line'); msg = chat[chat.length - 1]; author = msg.getElementsByClassName('from')[0]; var txt = msg.getElementsByClassName('message')[0]; var mentions = txt.getElementsByClassName('user-mention'); var imgs = txt.getElementsByTagName('img'); var links = txt.getElementsByTagName('a'); while (mentions[0]) { mentions[0].parentNode.removeChild(mentions[0]); } while (imgs[0]) { imgs[0].parentNode.removeChild(imgs[0]); } while(links[0]) { links[0].parentNode.removeChild(links[0]); } cleverbot_window.document.querySelector('input[name=stimulus]').value = txt.innerHTML; cleverbot_window.document.querySelector('input[name=thinkaboutitbutton]').click(); console.log(author.innerHTML + ':' + txt.innerHTML); isResponding = true; } else if (isResponding && cleverbot_window.document.querySelector('span#snipTextIcon.yellow')) { var response = cleverbot_window.document.getElementById('line1').getElementsByClassName('bot')[0].innerHTML; if(atMessage) { document.querySelector(victimChatbox).value = '@' + author.innerHTML + ' ' + response; } else { document.querySelector(victimChatbox).value = response; } document.querySelector(victimButton).click(); console.log('CLEVERBOT:' + response); isResponding = false; inputTimer = Date.now() + getRandInt(minDelay, maxDelay); } } function loadOptionWindow() { optionsWindow = window.open('', 'Cleverbot Options'); optionsWindow.document.write("<div id='cleverbot-opts'></div>"); optionsWindow.document.write("<h2>Cleverbot Options</h2>"); optionsWindow.document.write("<input type='checkbox' name='atMessage' id='atMessage' value='atMessage'>Use the @ when sending a response<br>"); optionsWindow.document.write("<label for='min-delay'>Min Input Delay</label><br>"); optionsWindow.document.write("<input type='text' name='min-delay'><br>"); optionsWindow.document.write("<label for='max-delay'>Max Input Delay</label><br>"); optionsWindow.document.write("<input type='text' name='max-delay'><br>"); optionsWindow.document.getElementById('atMessage').checked = atMessage; optionsWindow.document.getElementsByName('min-delay')[0].value = minDelay; optionsWindow.document.getElementsByName('max-delay')[0].value = maxDelay; $(optionsWindow.document).ready( function() { $(optionsWindow).unload(saveOptions); }); } function saveOptions() { console.log('Saving options...'); atMessage = optionsWindow.document.getElementById('atMessage').checked; var _minDelay = optionsWindow.document.getElementsByName('min-delay')[0].value; var _maxDelay = optionsWindow.document.getElementsByName('max-delay')[0].value; if(isNumeric(_minDelay) && isNumeric(_maxDelay) && Number(_maxDelay) > Number(_minDelay)) { minDelay = Number(_minDelay); maxDelay = Number(_maxDelay); } console.log("atMessage:"+atMessage+" minDelay:"+minDelay+" maxDelay:"+maxDelay); } function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); } function getRandInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max-min)) + min; }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址