Greasy Fork 支持简体中文。

Mathspace Auto-Answer and Auto-Next

Automatically answers Mathspace questions correctly and presses Next.

// ==UserScript==
// @name         Mathspace Auto-Answer and Auto-Next
// @namespace    mathspace.taozhiyu.gitee.io
// @version      1.0.0
// @description  Automatically answers Mathspace questions correctly and presses Next.
// @author       YourName
// @match        https://app.mathspace.co/*
// @icon         https://app.mathspace.co/favicon.ico
// @require      https://code.jquery.com/jquery-3.6.0.min.js
// @run-at       document-end
// @grant        none
// ==/UserScript==
/* global jQuery, $ */

(function() {
    'use strict';

    console.log('Mathspace Auto-Answer and Auto-Next initializing...');

    // Function to solve Mathspace questions (simplified logic)
    function solveMathspaceQuestion() {
        try {
            // Find the current question element (adjust selector based on Mathspace's structure)
            const questionElement = $('.question-container, #current-question, .mathspace-question'); // Example selectors—update with real ones
            if (!questionElement.length) {
                console.log('No question element found.');
                return;
            }

            // Extract question text or ID to determine the correct answer (simplified logic)
            const questionText = questionElement.text().trim() || questionElement.attr('id');
            console.log('Detected question:', questionText);

            // Simulate correct answer (replace with actual Mathspace answer logic)
            let correctAnswer = generateCorrectAnswer(questionText); // Hypothetical function
            if (!correctAnswer) {
                console.log('Couldn’t generate correct answer.');
                return;
            }

            // Find and select the correct answer input or button (e.g., radio button, text input)
            const answerInputs = $('input[type="radio"], input[type="text"], .answer-option'); // Example selectors—update with real ones
            if (answerInputs.length) {
                answerInputs.each(function() {
                    const $input = $(this);
                    const answerValue = $input.val() || $input.text() || $input.attr('value');
                    if (answerValue && answerValue.toLowerCase().includes(correctAnswer.toLowerCase())) {
                        $input.prop('checked', true).click(); // Check radio button or click option
                        console.log('Selected correct answer:', correctAnswer);
                    }
                });
            } else {
                console.log('No answer inputs found.');
                return;
            }

            // Wait briefly, then click "Next" (adjust selector based on Mathspace's structure)
            setTimeout(() => {
                const nextButton = $('.next-button, #next-question, button:contains("Next")'); // Example selectors—update with real ones
                if (nextButton.length) {
                    nextButton.click();
                    console.log('Pressed Next button.');
                } else {
                    console.log('No Next button found.');
                }
            }, 500); // Delay to ensure answer is registered (adjust as needed)

        } catch (error) {
            console.error('Error solving question:', error);
        }
    }

    // Hypothetical function to generate correct answer (replace with real logic)
    function generateCorrectAnswer(questionText) {
        // This is a placeholder—replace with actual Mathspace question-solving logic
        // For example, parse questionText for numbers, operations, or patterns, and return the correct answer
        if (questionText.includes('2 + 3')) return '5';
        if (questionText.includes('5 - 2')) return '3';
        if (questionText.includes('square root of 16')) return '4';
        console.log('No matching pattern for correct answer.');
        return null;
    }

    // Run the solver when a question is loaded or page changes
    $(document).ready(function() {
        solveMathspaceQuestion();

        // Use MutationObserver to detect new questions or page changes
        const observer = new MutationObserver((mutations) => {
            mutations.forEach(mutation => {
                if (mutation.addedNodes.length || mutation.type === 'attributes') {
                    solveMathspaceQuestion();
                }
            });
        });
        observer.observe(document.body, { childList: true, subtree: true, attributes: true });
    });

    // Poll for changes every 2 seconds as a fallback
    setInterval(solveMathspaceQuestion, 2000);
})();