IMYAI网站点击按钮快速每日签到Daily Sign-in Automation in IMYAI

Automate daily sign-in with a click of a button and check for the second button regularly

目前為 2023-12-12 提交的版本,檢視 最新版本

// ==UserScript==
// @name         IMYAI网站点击按钮快速每日签到Daily Sign-in Automation in IMYAI
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Automate daily sign-in with a click of a button and check for the second button regularly
// @author       GPT4.0
// @match        https://ai.imyai.top/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Function to simulate a mouse click
    function simulateClick(element) {
        const mouseClickEvents = ['mousedown', 'click', 'mouseup'];
        mouseClickEvents.forEach(mouseEventType =>
            element.dispatchEvent(
                new MouseEvent(mouseEventType, {
                    view: window,
                    bubbles: true,
                    cancelable: true,
                    buttons: 1
                })
            )
        );
    }

    // Function to add the new button to the page
    function addButton() {
        const newButton = document.createElement('button');
        newButton.innerText = '快速签到';
        newButton.style.position = 'fixed';
        newButton.style.top = '10px';
        newButton.style.left = '10px';
        newButton.style.zIndex = '10000';

        newButton.onclick = function() {
            // Query for the first sign-in button
            const firstSignInButton = document.querySelector('svg.iconify--noto');
            if (firstSignInButton) {
                simulateClick(firstSignInButton);
            }

            // Check for the second button every half second
            const checkExist = setInterval(function() {
                const secondSignInButton = document.querySelector('div.flex.mt-3.w-full.mt-14 > button.n-button--info-type');
                if (secondSignInButton) {
                    simulateClick(secondSignInButton);
                    clearInterval(checkExist); // Stop checking once the button has been clicked
                }
            }, 500); // Check every 500ms
        };

        document.body.appendChild(newButton);
    }

    // Add the button after the DOM is fully loaded
    if (document.readyState === 'complete') {
        addButton();
    } else {
        window.addEventListener('load', addButton);
    }
})();