Greasy Fork 支持简体中文。

gooboo自动做题

gooboo自动做题!自用

// ==UserScript==
// @name         gooboo自动做题
// @namespace    http://tampermonkey.net/
// @version      202410100002
// @description  gooboo自动做题!自用
// @author       moNAME
// @match        *://gooboo.g8hh.com.cn/*
// @icon         https://www.g8hh.com/static/images/game/gooboo/top.jpg
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';
//计时器毫秒数
const maxtimes=300;
// 检查是否已经加载了jQuery
    if (typeof jQuery === 'undefined') {
        var script = document.createElement('script');
        script.src = "https://code.jquery.com/jquery-3.6.0.min.js";
        script.onload = function() {
            initTimerSwitch();
        };
        document.head.appendChild(script);
    } else {
        initTimerSwitch();
    }

    function initTimerSwitch() {
        // 创建按钮
        var $switchButton = $(`<button>开关</button>`).appendTo('.v-toolbar__content');

        // 初始状态为关闭
        var isOn = false;

        // 定义计时器
        var timerId;

        // 设置按钮点击事件
        $switchButton.on('click', function() {
            isOn = !isOn;
            if (isOn) {
                var r=confirm("是否开始自动答题?");
                if (r==true){
                    // 开启时开始计时器
                    startTimer();
                }
            } else {
                // 关闭时停止计时器
                stopTimer();
                $(this).text('已关闭');
            }
        });
        // 启动计时器函数
        function startTimer() {
            stopTimer();// 首先停止已存在的定时器
            timerId = setInterval(function() {

                // 检查答题输入框是否存在
                var answerInput = $('#answer-input-math');
                if (!answerInput.length) {
                    window.alert('答题输入框不存在,停止计时器。');
                    $switchButton.click();
                    return;
                }

                var question=$('.text-center.question-text')[0].innerText.replace(/[^0-9+\-*/\s]/g,'');
                var questionanswer=eval(question);
                var answerinput1=Number($('#answer-input-math').data("_value"));
                var answerinput2=Number($('#answer-input-math').val());
                if(answerinput1==questionanswer && answerinput1==answerinput2){
                    //已填写答案
                    $('.d-flex.justify-center.align-center.flex-wrap').children('button.v-btn')[0].click();
                } else {
                    $('#answer-input-math').val(questionanswer);
                    $('#answer-input-math').data("_value", questionanswer);
                    //直接修改值并不会出发input事件,会导致后续模拟点击不能通过
                    var evt = document.createEvent('HTMLEvents');//createEvent=创建windows事件
                    var inputDom = document.querySelector('#answer-input-math');
                    evt.initEvent('input', true, true);
                    inputDom .dispatchEvent(evt);


                }
            }, maxtimes);
            console.log('自动刷题计时器运行中...');
        }
            // 停止计时器函数
        function stopTimer() {
            if (timerId) {
                clearInterval(timerId);

                timerId = null;
            }
        }
    }
})();