// ==UserScript== // @name 🤖IMYAI网站自动签到 Auto Sign-in for IMYAI Website // @namespace http://tampermonkey.net/ // @version 1.0 // @description 打开网页后等待3秒自动签到,签到完成后自动关闭签到对话框。Automate sign-in with a 3-second delay after page load and automatically close the sign-in dialog after sign-in. // @author GPT4.0 // @match https://ai.imyai.top/* // @grant none // @license MIT // @downloadURL none // ==/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 close the sign-in dialog after a delay function closeSignInDialog() { const closeButton = document.querySelector('.n-base-close.n-base-close--absolute.n-card-header__close'); if (closeButton) { simulateClick(closeButton); // First attempt to close the dialog setTimeout(() => { simulateClick(closeButton); // Second attempt to close the dialog }, 500); // Delay between attempts } } // Function to handle the sign-in process function handleSignIn() { // Query for the first sign-in button const firstSignInButton = document.querySelector('svg.iconify--noto'); if (firstSignInButton) { simulateClick(firstSignInButton); } // Check for the second sign-in 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 } // Function to add the sign-in button to the page (for manual control if needed) function addButton() { const newButton = document.createElement('button'); newButton.innerText = ''; // Styling the button newButton.style.cssText = ` position: fixed; top: 10px; left: 10px; z-index: 10000; padding: 25px 25px; background-color: transparent; color: transparent; border: none; border-radius: 5px; box-shadow: none; font-weight: bold; cursor: pointer; transition: background-color 0.3s, box-shadow 0.3s; `; newButton.onclick = handleSignIn; document.body.appendChild(newButton); } // Add the button and trigger sign-in after the DOM is fully loaded with a delay if (document.readyState === 'complete') { addButton(); setTimeout(handleSignIn, 3000); // Wait for 3 seconds before triggering sign-in setTimeout(closeSignInDialog, 4000); // Wait for an additional 1 seconds before attempting to close the dialog setTimeout(closeSignInDialog, 4500); // Wait for an additional 1.5 seconds before attempting to close the dialog } else { window.addEventListener('load', function() { addButton(); setTimeout(handleSignIn, 3000); // Wait for 3 seconds before triggering sign-in setTimeout(closeSignInDialog, 4000); // Wait for an additional 1 seconds before attempting to close the dialog setTimeout(closeSignInDialog, 4500); // Wait for an additional 1.5 seconds before attempting to close the dialog }); } })();