dati

自动答题

目前为 2018-11-05 提交的版本。查看 最新版本

// ==UserScript==
// @name                dati
// @name:zh-CN          大头答题
// @namespace           www.icycat.com
// @description         自动答题
// @description:zh-CN   检测答案自动答题
// @include             https://www.douyu.com/9999
// @include             https://www.douyu.com/1209
// @include             https://www.douyu.com/196
// @version             1.3
// @run-at              document-end
// ==/UserScript==

function checkPreview() {
    if (document.querySelector('div[class^="answerPreview"]')) {
        console.log('30秒后开始答题');
        setTimeout(function(){
            console.log('开始检测答案');
            checkAnswer(1);
        },25000);
        return;
    }
    setTimeout(function() {
        checkPreview();
    }, 1000);
}

function checkAnswer(t) {
    var users = ['245155','144327686','2025628','892552'];
    for (var i = 0; i < users.length; i++) {
        var user = document.querySelectorAll('[data-uid="' + users[i] + '"]');
        if (user.length > 0) {
            var text = user[user.length - 1].parentNode.parentNode.querySelector('.Barrage-content').innerText;
            switch (text.substr(0, 1).toUpperCase()) {
                case 'A':
                    answer(1);
                    console.log('检测到神仙答案A');
                    return;
                case 'B':
                    answer(2);
                    console.log('检测到神仙答案B');
                    return;
                case 'C':
                    answer(3);
                    console.log('检测到神仙答案C');
                    return;
            }
        }
    }
    if (t > 10) {
        findAnswer(t);
        return;
    }
    t++;
    setTimeout(function() {
        checkAnswer(t);
    }, 100);
}

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];
        }
    }
    console.log('检测到最多答案为' + tempKey + '!');
    if (tempKey) {
        answer(tempKey);
    } else {
        t++;
        if (t < 20) {
            setTimeout(function() {
                findAnswer(t);
            }, 100);
        } else {
            answer(2);
        }
    }
}

function answer(i) {
    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);
        return;
    }
    setTimeout(function() {
        answer(i);
    }, 10);
}

checkPreview();