// ==UserScript== // @name Auto Goku.to Sign // @namespace http://tampermonkey.net/ // @version 4.0 // @ author longkidkoolstar // @description Automatically clicks the Sign In button for goku.to after 10 seconds, and fills in the email and password fields if provided by the user. // @match https://goku.sx/* // @grant GM_getValue // @grant GM_setValue // @license GPL-3.0 // @icon https://cdn.dribbble.com/users/289074/screenshots/1614713/sans_titre_-_2.png // @require https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js // @downloadURL none // ==/UserScript== (function() { 'use strict'; function generateRandomKey() { const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let key = ''; for (let i = 0; i < 16; i++) { key += characters.charAt(Math.floor(Math.random() * characters.length)); } return key; } function encryptData(data, key) { const encrypted = CryptoJS.AES.encrypt(data, key); return encrypted.toString(); } function decryptData(encryptedData, key) { const decrypted = CryptoJS.AES.decrypt(encryptedData, key); return decrypted.toString(CryptoJS.enc.Utf8); } window.addEventListener('load', function() { const emailInput = document.querySelector('input[name="email"]'); const passwordInput = document.querySelector('input[name="password"]'); const key = GM_getValue('goku.to.key'); if (emailInput && passwordInput) { const encryptedEmail = localStorage.getItem('goku.to.email'); const encryptedPassword = localStorage.getItem('goku.to.password'); if (encryptedEmail && encryptedPassword) { const email = decryptData(encryptedEmail, key); const password = decryptData(encryptedPassword, key); emailInput.value = email; passwordInput.value = password; } else { const newEmail = prompt('Enter your email for Goku.to:', ''); const newPassword = prompt('Enter your password for Goku.to:', ''); if (newEmail && newPassword) { const newKey = generateRandomKey(); const encryptedNewEmail = encryptData(newEmail, newKey); const encryptedNewPassword = encryptData(newPassword, newKey); GM_setValue('goku.to.key', newKey); localStorage.setItem('goku.to.email', encryptedNewEmail); localStorage.setItem('goku.to.password', encryptedNewPassword); emailInput.value = newEmail; passwordInput.value = newPassword; } } } const button = document.querySelector('.account-button .btn.btn-blank'); if (button) { button.click(); } }); if (window.location.href.startsWith('https://goku.sx/login')) { let secondsToWait = null; const storedSeconds = localStorage.getItem('goku.to.autosign.seconds'); if (storedSeconds !== null) { secondsToWait = parseInt(storedSeconds, 10); } if (!secondsToWait) { const input = prompt('Enter the number of seconds to wait before clicking the "Sign In" button. Default is 10 seconds.', '10'); if (!input) return; secondsToWait = parseInt(input, 10); if (isNaN(secondsToWait)) { secondsToWait = 10; } localStorage.setItem('goku.to.autosign.seconds', secondsToWait.toString()); } setTimeout(function() { const key = GM_getValue('goku.to.key'); const button = document.querySelector('.btn.btn-block.btn-primary.position-relative'); if (button) { button.click(); } }, secondsToWait * 1000); } })();