// ==UserScript== // @name dati // @name:zh-CN 大头答题 // @namespace www.icycat.com // @description 自动答题 // @description:zh-CN 检测答案自动答题 // @author 冻猫 // @include https://www.douyu.com/9999 // @include https://www.douyu.com/1209 // @include https://www.douyu.com/196 // @version 1.5 // @run-at document-end // @downloadURL none // ==/UserScript== function checkPreview() { if (document.querySelector('div[class^="answerPreview"]')) { console.log('30秒后开始答题'); setTimeout(function() { console.log('开始检测答案'); findAnswer(1); }, 25000); return; } setTimeout(function() { checkPreview(); }, 1000); } function findAnswer(t) { var json = {}; json[1] = 0; json[2] = 0; json[3] = 0; var content = document.querySelectorAll('.chat-msg-item').length ? document.querySelectorAll('.chat-msg-item') : document.querySelectorAll('.Barrage-content'); for (var i = 0; i < content.length; i++) { switch (content[i].innerText.substr(0, 1).toUpperCase()) { case 'A': json[1]++; break; case 'B': json[2]++; break; case 'C': json[3]++; break; } } var tempVal = 0, tempKey = ''; for (var key in json) { if (json[key] > tempVal) { tempKey = key; tempVal = json[key]; } } if (tempKey) { console.log('检测到最多答案为' + tempKey + '!'); answer(tempKey); } else { t++; if (t < 40) { setTimeout(function() { findAnswer(t); }, 100); } else { console.log('没有检测到答案,有C选C了'); answer(3); } } } function answer(i) { console.log('准备答题'); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { var li = document.querySelectorAll('div[class^="answerProblem"] ul li'); if (li.length > 0) { li[i - 1].click(); console.log('答题完成,19分钟后自动刷新网页'); setTimeout(function() { window.location.reload(); }, 1140000); observer.disconnect(); } }); }); observer.observe(document.querySelector('div[class^="answerPreview"]').parentNode, { childList: true }); } checkPreview(); console.log('开始自动答题');