Greasy Fork is available in English.
Access Duolingo accounts using tokens with improved GUI and features
// ==UserScript== // @name DuoAgent // @namespace http://tampermonkey.net/ // @version 1.1 // @description Access Duolingo accounts using tokens with improved GUI and features // @author NowaysZ and Interstellar // @match https://www.duolingo.com/learn // @icon https://cdn.discordapp.com/attachments/1268766304677007434/1275415373453463583/download.gif?ex=66c5cea1&is=66c47d21&hm=8cecf7cdf5ec172341da396a52b28d4b006a9e31bd8d652b3fca37a7fa5b37a4& // @grant none // @license MIT2 // ==/UserScript== (function() { 'use strict'; // Function to get token from cookie function getTokenFromCookie() { const cookie = document.cookie .split('; ') .find(cookie => cookie.startsWith('jwt_token=')); return cookie ? cookie.split('=')[1] : ''; } // Function to set token to cookie function setTokenToCookie(token) { document.cookie = `jwt_token=${token}; path=/`; } // Các license key hợp lệ const validKeys = ['nowaysZGUImaker', 'interstellarAdmin', 'InterBot']; // Hiển thị giao diện nhập license key function showLicensePrompt() { const licenseKey = prompt("Please enter the license key to continue:"); if (validKeys.includes(licenseKey)) { alert("License key valid! Now, you can use our tool."); // Thực hiện các hành động tiếp theo tại đây nếu license key hợp lệ } else { alert("License key invalid. Please try again."); // Thực hiện các hành động khác hoặc reload trang location.reload(); } } // Kiểm tra nếu người dùng đã nhập license key hợp lệ trước đó const userKey = localStorage.getItem('userLicenseKey'); if (!validKeys.includes(userKey)) { showLicensePrompt(); } else { alert("License key đã được xác nhận trước đó."); // Thực hiện các hành động khác tại đây location.reload(); } // Kiểm tra trạng thái dark mode function isDarkModeEnabled() { return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; } // Tạo UI container const container = document.createElement('div'); container.style.position = 'fixed'; container.style.top = '50px'; container.style.right = '20px'; // Đặt background dựa trên trạng thái dark mode if (isDarkModeEnabled()) { container.style.background = 'linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.3))'; // Gradient cho dark mode } else { container.style.background = 'linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.3))'; // Gradient cho light mode } container.style.backdropFilter = 'blur(40px)'; // Tăng hiệu ứng làm mờ container.style.padding = '15px'; container.style.border = '1px solid #9c9c9c'; container.style.borderRadius = '12px'; container.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)'; container.style.zIndex = '9999'; container.style.width = '350px'; container.style.height = '670px'; container.style.maxWidth = '90%'; container.style.fontFamily = 'Arial, sans-serif'; document.body.appendChild(container); // ????? const macosTitleBar = document.createElement('div') macosTitleBar.style.height = '45px'; macosTitleBar.style.marginTop = '-15px'; macosTitleBar.style.marginLeft = '-15px'; macosTitleBar.style.background = '#ececec'; macosTitleBar.style.borderTopLeftRadius = '7px'; macosTitleBar.style.borderTopRightRadius = '7px'; macosTitleBar.style.display = 'flex'; macosTitleBar.style.alignItems = 'center'; macosTitleBar.style.width = '348px'; container.appendChild(macosTitleBar); // Header container const headerContainer = document.createElement('div'); headerContainer.style.display = 'flex'; headerContainer.style.alignItems = 'center'; headerContainer.style.justifyContent = 'space-between'; container.appendChild(headerContainer); // Title const title = document.createElement('h2'); title.textContent = 'DuoAgent'; title.style.marginTop = '10px'; title.style.fontSize = '20px'; title.style.color = '#333'; headerContainer.appendChild(title); // Version label const versionLabel = document.createElement('div'); versionLabel.textContent = '1.0 Alpha 2'; versionLabel.style.backgroundColor = '#dc3545'; versionLabel.style.marginTop = '-13px'; versionLabel.style.marginRight = '80px' versionLabel.style.color = '#fff'; versionLabel.style.padding = '5px 10px'; versionLabel.style.borderRadius = '5px'; versionLabel.style.fontSize = '12px'; headerContainer.appendChild(versionLabel); // Button container (to align "Next" and "Hide" buttons) const nextBtnContainer = document.createElement('div'); nextBtnContainer.style.display = 'flex'; nextBtnContainer.style.alignItems = 'center'; headerContainer.appendChild(nextBtnContainer); // Button container (to align "Next" and "Hide" buttons) const hideShowBtnContainer = document.createElement('div'); hideShowBtnContainer.style.display = 'flex'; hideShowBtnContainer.style.alignItems = 'center'; headerContainer.appendChild(hideShowBtnContainer); // Next button const nextBtn = document.createElement('button'); nextBtn.textContent = 'Next'; nextBtn.style.marginRight = '-57px'; nextBtn.style.marginTop = '-13px'; nextBtn.style.padding = '10px 15px'; nextBtn.style.backgroundColor = '#28a745'; nextBtn.style.color = '#fff'; nextBtn.style.border = 'none'; nextBtn.style.borderRadius = '15px'; nextBtn.style.cursor = 'pointer'; nextBtn.style.fontSize = '14px'; nextBtn.style.transition = 'background-color 0.3s, transform 0.3s'; nextBtn.onmouseover = () => { nextBtn.style.backgroundColor = '#218838'; nextBtn.style.transform = 'scale(1.05)'; }; nextBtn.onmouseout = () => { nextBtn.style.backgroundColor = '#28a745'; nextBtn.style.transform = 'scale(1)'; }; nextBtnContainer.appendChild(nextBtn); // Hide/Show button const hideShowBtn = document.createElement('button'); hideShowBtn.textContent = 'Hide'; hideShowBtn.style.padding = '10px 15px'; hideShowBtn.style.marginTop = '-107px'; hideShowBtn.style.marginRight = '-7px'; hideShowBtn.style.backgroundColor = '#007bff'; hideShowBtn.style.color = '#fff'; hideShowBtn.style.border = 'none'; hideShowBtn.style.borderRadius = '15px'; hideShowBtn.style.cursor = 'pointer'; hideShowBtn.style.fontSize = '14px'; hideShowBtn.style.transition = 'background-color 0.3s, transform 0.3s'; hideShowBtn.onmouseover = () => { hideShowBtn.style.backgroundColor = '#0056b3'; hideShowBtn.style.transform = 'scale(1.05)'; }; hideShowBtn.onmouseout = () => { hideShowBtn.style.backgroundColor = '#007bff'; hideShowBtn.style.transform = 'scale(1)'; }; hideShowBtnContainer.appendChild(hideShowBtn); // Thiết lập chiều cao ban đầu của container (ví dụ: 670px) let originalHeight = container.clientHeight; let isHidden = false; hideShowBtn.addEventListener('click', () => { if (isHidden) { // Khi nhấn "Show", tăng chiều cao dần dần về chiều cao ban đầu và khôi phục độ trong suốt container.style.transition = 'max-height 0.5s ease-in-out, opacity 0.5s ease-in-out'; container.style.maxHeight = originalHeight + 'px'; container.style.opacity = '1'; hideShowBtn.style.opacity = '1'; hideShowBtn.textContent = 'Hide'; } else { // Khi nhấn "Hide", giảm chiều cao dần dần về 55px và làm mờ container container.style.transition = 'max-height 0.5s ease-in-out, opacity 0.5s ease-in-out'; hideShowBtn.style.opacity = '1'; container.style.opacity = '0.01'; // Làm mờ container hideShowBtn.textContent = 'Show'; } isHidden = !isHidden; }); // Active token display const activeTokenDisplay = document.createElement('div'); activeTokenDisplay.style.margin = '10px 0'; activeTokenDisplay.style.marginTop = '-10px'; activeTokenDisplay.style.padding = '10px'; activeTokenDisplay.style.border = '1px solid #ddd'; activeTokenDisplay.style.borderRadius = '8px'; activeTokenDisplay.style.backgroundColor = '#f8f9fa'; activeTokenDisplay.style.fontSize = '14px'; activeTokenDisplay.style.color = '#333'; activeTokenDisplay.style.textAlign = 'center'; activeTokenDisplay.style.wordWrap = 'break-word'; activeTokenDisplay.style.overflow = 'hidden'; activeTokenDisplay.style.textOverflow = 'ellipsis'; activeTokenDisplay.textContent = getTokenFromCookie() || 'No active token'; container.appendChild(activeTokenDisplay); // Description const desc = document.createElement('p'); desc.textContent = 'Enter a token and click "Add Token". Click on a token slot to use it.'; desc.style.margin = '10px 0 20px'; desc.style.fontSize = '14px'; desc.style.color = '#555'; desc.style.textAlign = 'center'; container.appendChild(desc); // Token input and button container const tokenInputContainer = document.createElement('div'); tokenInputContainer.style.display = 'flex'; tokenInputContainer.style.flexDirection = 'column'; tokenInputContainer.style.alignItems = 'center'; tokenInputContainer.style.marginBottom = '20px'; container.appendChild(tokenInputContainer); // Token input field const tokenInput = document.createElement('input'); tokenInput.placeholder = 'Enter token'; tokenInput.style.width = '100%'; tokenInput.style.padding = '12px'; tokenInput.style.border = '1px solid #ddd'; tokenInput.style.borderRadius = '8px'; tokenInput.style.marginBottom = '10px'; tokenInputContainer.appendChild(tokenInput); // Buttons container const buttonsContainer = document.createElement('div'); buttonsContainer.style.display = 'flex'; buttonsContainer.style.justifyContent = 'space-between'; buttonsContainer.style.width = '100%'; tokenInputContainer.appendChild(buttonsContainer); // Add token button const addTokenBtn = document.createElement('button'); addTokenBtn.textContent = 'Add Token'; addTokenBtn.style.flex = '1'; addTokenBtn.style.marginRight = '10px'; addTokenBtn.style.padding = '12px 24px'; addTokenBtn.style.backgroundColor = '#007bff'; addTokenBtn.style.color = '#fff'; addTokenBtn.style.border = 'none'; addTokenBtn.style.borderRadius = '8px'; addTokenBtn.style.cursor = 'pointer'; addTokenBtn.style.transition = 'background-color 0.3s, transform 0.3s'; addTokenBtn.onmouseover = () => { addTokenBtn.style.backgroundColor = '#0056b3'; addTokenBtn.style.transform = 'scale(1.05)'; }; addTokenBtn.onmouseout = () => { addTokenBtn.style.backgroundColor = '#007bff'; addTokenBtn.style.transform = 'scale(1)'; }; buttonsContainer.appendChild(addTokenBtn); // Clear tokens button const clearTokensBtn = document.createElement('button'); clearTokensBtn.textContent = 'Clear Tokens'; clearTokensBtn.style.flex = '1'; clearTokensBtn.style.marginLeft = '10px'; clearTokensBtn.style.padding = '12px 24px'; clearTokensBtn.style.backgroundColor = '#dc3545'; clearTokensBtn.style.color = '#fff'; clearTokensBtn.style.border = 'none'; clearTokensBtn.style.borderRadius = '8px'; clearTokensBtn.style.cursor = 'pointer'; clearTokensBtn.style.transition = 'background-color 0.3s, transform 0.3s'; clearTokensBtn.onmouseover = () => { clearTokensBtn.style.backgroundColor = '#c82333'; clearTokensBtn.style.transform = 'scale(1.05)'; }; clearTokensBtn.onmouseout = () => { clearTokensBtn.style.backgroundColor = '#dc3545'; clearTokensBtn.style.transform = 'scale(1)'; }; buttonsContainer.appendChild(clearTokensBtn); // Token slots container const tokenList = document.createElement('div'); tokenList.style.display = 'flex'; tokenList.style.flexWrap = 'wrap'; tokenList.style.gap = '15px'; container.appendChild(tokenList); // Create token slot function const createTokenSlot = (id) => { const slot = document.createElement('div'); slot.id = id; slot.textContent = id; slot.style.width = '120px'; slot.style.height = '120px'; slot.style.backgroundColor = '#28a745'; slot.style.color = '#fff'; slot.style.display = 'flex'; slot.style.flexDirection = 'column'; slot.style.justifyContent = 'center'; slot.style.alignItems = 'center'; slot.style.borderRadius = '12px'; slot.style.cursor = 'pointer'; slot.style.fontSize = '12px'; slot.style.textAlign = 'center'; slot.style.boxShadow = '0 2px 6px rgba(0, 0, 0, 0.2)'; slot.onmouseover = () => { slot.style.backgroundColor = '#218838' }; slot.onmouseout = () => { slot.style.backgroundColor = '#28a745' }; tokenList.appendChild(slot); return slot; }; // Create slots const tokenSlots = [createTokenSlot('Slot 1'), createTokenSlot('Slot 2'), createTokenSlot('Slot 3')]; // Add token button click event addTokenBtn.addEventListener('click', () => { const token = tokenInput.value.trim(); if (token) { addToken(token); tokenInput.value = ''; } else { alert('Please enter a valid token.'); } }); // Clear tokens button click event clearTokensBtn.addEventListener('click', () => { displayClearTokenTable(); }); // Token slot click events tokenSlots.forEach(slot => { slot.addEventListener('click', () => { const token = slot.getAttribute('data-token'); if (token) { setTokenToCookie(token); activeTokenDisplay.textContent = `Active Token: ${token}`; setTimeout(() => { window.location.reload(); // Simulate auto-reload }, 1000); } }); }); // Add token to slot function function addToken(token) { for (const slot of tokenSlots) { if (!slot.getAttribute('data-token')) { slot.setAttribute('data-token', token); slot.innerHTML = `<strong>Token</strong><br>${token.slice(0, 10)}...`; // Show only first 10 characters for readability break; } } } // Display table to select tokens to be deleted function displayClearTokenTable() { const tableContainer = document.createElement('div'); tableContainer.style.position = 'fixed'; tableContainer.style.top = '50%'; tableContainer.style.left = '50%'; tableContainer.style.transform = 'translate(-50%, -50%)'; tableContainer.style.backgroundColor = '#fff'; tableContainer.style.padding = '20px'; tableContainer.style.border = '1px solid #ddd'; tableContainer.style.borderRadius = '12px'; tableContainer.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)'; tableContainer.style.zIndex = '10000'; tableContainer.style.width = '300px'; tableContainer.style.maxWidth = '90%'; tableContainer.style.fontFamily = 'Arial, sans-serif'; document.body.appendChild(tableContainer); const tableTitle = document.createElement('h3'); tableTitle.textContent = 'Select Tokens to Delete'; tableTitle.style.margin = '0 0 20px'; tableTitle.style.fontSize = '18px'; tableTitle.style.color = '#333'; tableTitle.style.textAlign = 'center'; tableContainer.appendChild(tableTitle); const form = document.createElement('form'); tableContainer.appendChild(form); tokenSlots.forEach((slot, index) => { const token = slot.getAttribute('data-token'); if (token) { const label = document.createElement('label'); label.style.display = 'flex'; label.style.alignItems = 'center'; label.style.marginBottom = '10px'; const checkbox = document.createElement('input'); checkbox.type = 'checkbox'; checkbox.name = 'tokens'; checkbox.value = index; checkbox.style.marginRight = '10px'; label.appendChild(checkbox); label.appendChild(document.createTextNode(`Slot ${index + 1}: ${token.slice(0, 10)}...`)); form.appendChild(label); } }); const buttonsContainer = document.createElement('div'); buttonsContainer.style.display = 'flex'; buttonsContainer.style.justifyContent = 'space-between'; buttonsContainer.style.marginTop = '20px'; form.appendChild(buttonsContainer); const confirmBtn = document.createElement('button'); confirmBtn.textContent = 'Confirm'; confirmBtn.style.flex = '1'; confirmBtn.style.marginRight = '10px'; confirmBtn.style.padding = '10px 20px'; confirmBtn.style.backgroundColor = '#007bff'; confirmBtn.style.color = '#fff'; confirmBtn.style.border = 'none'; confirmBtn.style.borderRadius = '8px'; confirmBtn.style.cursor = 'pointer'; confirmBtn.style.transition = 'background-color 0.3s, transform 0.3s'; confirmBtn.onmouseover = () => { confirmBtn.style.backgroundColor = '#0056b3'; confirmBtn.style.transform = 'scale(1.05)'; }; confirmBtn.onmouseout = () => { confirmBtn.style.backgroundColor = '#007bff'; confirmBtn.style.transform = 'scale(1)'; }; buttonsContainer.appendChild(confirmBtn); const cancelBtn = document.createElement('button'); cancelBtn.textContent = 'Cancel'; cancelBtn.style.flex = '1'; cancelBtn.style.marginLeft = '10px'; cancelBtn.style.padding = '10px 20px'; cancelBtn.style.backgroundColor = '#dc3545'; cancelBtn.style.color = '#fff'; cancelBtn.style.border = 'none'; cancelBtn.style.borderRadius = '8px'; cancelBtn.style.cursor = 'pointer'; cancelBtn.style.transition = 'background-color 0.3s, transform 0.3s'; cancelBtn.onmouseover = () => { cancelBtn.style.backgroundColor = '#c82333'; cancelBtn.style.transform = 'scale(1.05)'; }; cancelBtn.onmouseout = () => { cancelBtn.style.backgroundColor = '#dc3545'; cancelBtn.style.transform = 'scale(1)'; }; buttonsContainer.appendChild(cancelBtn); confirmBtn.addEventListener('click', (e) => { e.preventDefault(); const selectedTokens = Array.from(form.tokens).filter(input => input.checked).map(input => parseInt(input.value)); selectedTokens.forEach(index => { const slot = tokenSlots[index]; slot.removeAttribute('data-token'); slot.textContent = slot.id; }); activeTokenDisplay.textContent = getTokenFromCookie() || 'No active token'; // Update display document.body.removeChild(tableContainer); }); cancelBtn.addEventListener('click', (e) => { e.preventDefault(); document.body.removeChild(tableContainer); }); } // Show the next section function showNextSection() { const nextSection = document.createElement('div'); nextSection.style.position = 'fixed'; nextSection.style.marginRight = '0px' nextSection.style.marginTop = '30px' nextSection.style.top = '20px'; nextSection.style.right = '20px'; nextSection.style.backgroundColor = '#fff'; nextSection.style.padding = '15px'; nextSection.style.border = '1px solid #ddd'; nextSection.style.borderRadius = '7px'; nextSection.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)'; nextSection.style.zIndex = '9999'; nextSection.style.width ='350px'; nextSection.style.height = '670px'; nextSection.style.maxWidth = '90%'; nextSection.style.fontFamily = 'Arial, sans-serif'; document.body.appendChild(nextSection); // Add "Back" button const backBtn = document.createElement('button'); backBtn.textContent = 'Back'; backBtn.style.padding = '10px 15px'; backBtn.style.backgroundColor = '#dc3545'; backBtn.style.color = '#fff'; backBtn.style.border = 'none'; backBtn.style.borderRadius = '15px'; backBtn.style.cursor = 'pointer'; backBtn.style.fontSize = '14px'; backBtn.style.transition = 'background-color 0.3s, transform 0.3s'; backBtn.onmouseover = () => { backBtn.style.backgroundColor = '#c82333'; backBtn.style.transform = 'scale(1.05)'; }; backBtn.onmouseout = () => { backBtn.style.backgroundColor = '#dc3545'; backBtn.style.transform = 'scale(1)'; }; nextSection.appendChild(backBtn); backBtn.addEventListener('click', () => { document.body.removeChild(nextSection); }); // Create "Connect" status const connectStatus = document.createElement('div'); connectStatus.style.width = '255px'; connectStatus.style.height = '40px'; connectStatus.style.borderRadius = '8px'; connectStatus.style.textAlign = 'center'; connectStatus.style.marginTop = '10px'; connectStatus.style.marginLeft = '68px' connectStatus.style.fontFamily = 'Arial, sans-serif'; connectStatus.style.display = 'flex'; // Use flex to align items horizontally connectStatus.style.alignItems = 'center'; // Align items vertically connectStatus.style.justifyContent = 'center'; // Center items horizontally connectStatus.style.backgroundColor = '#dc3545'; // Default color connectStatus.style.color = '#fff'; // Default color // Create icon element const icon = document.createElement('img'); icon.src = 'https://cdn.discordapp.com/attachments/1270359834012942429/1274293675064688670/image.png?ex=66d82377&is=66d6d1f7&hm=5c5063215da800c7d962b1e15a2b51287ce49a1a94aa333eca2f3e9ccbc34963&'; icon.style.width = '34px'; // Adjust size as needed icon.style.height = '34px'; // Adjust size as needed icon.style.marginRight = '10px'; // Space between icon and text // Append icon and text to connectStatus if (window.location.origin === 'https://www.duolingo.com' && !document.cookie.includes('auth_token')) { connectStatus.style.backgroundColor = '#34c759'; // Change background color connectStatus.textContent = 'Connected'; connectStatus.insertBefore(icon, connectStatus.firstChild); // Add icon before text } else { connectStatus.textContent = 'Error'; } nextSection.appendChild(connectStatus); nextSection.appendChild(statusTitle); nextSection.appendChild(sectionTitle); nextSection.appendChild(setBtn); nextSection.appendChild(TOSBtn); nextSection.appendChild(firstDesc); nextSection.appendChild(secondDesc); nextSection.appendChild(thirdDesc); nextSection.appendChild(fourthDesc) nextSection.appendChild(patreonBtn); } // Add content to the next section const statusTitle = document.createElement('h3'); statusTitle.textContent = 'Status'; statusTitle.style.margin = '0 0 10px'; statusTitle.style.marginRight = '10000px'; statusTitle.style.marginTop = '-33px' statusTitle.style.fontSize = '20px'; statusTitle.style.color = '#333'; statusTitle.style.textAlign = 'left'; // Add "Join our Discord at:" label const discordLabel = document.createElement('h3'); discordLabel.textContent = 'Join our Discord at:'; discordLabel.style.fontSize = '20px'; discordLabel.style.color = '#000'; discordLabel.style.marginRight = '10px'; discordLabel.style.marginTop = '-30px'; // Add "Discord" button with icon const disBtn = document.createElement('button'); disBtn.style.padding = '10px'; disBtn.style.marginLeft = '278px' disBtn.style.marginTop = '120px' disBtn.style.backgroundColor = '#5665ec'; // Blue background disBtn.style.borderRadius = '12px'; // Rounded corners disBtn.style.border = 'none'; disBtn.style.cursor = 'pointer'; disBtn.style.width = '40px'; // Adjust width to fit the icon disBtn.style.height = '40px'; // Adjust height to fit the icon disBtn.style.display = 'inline-flex'; disBtn.style.alignItems = 'center'; disBtn.style.justifyContent = 'center'; disBtn.style.transition = 'background-color 0.3s, transform 0.3s'; const discordIcon = document.createElement('img'); discordIcon.src = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQQFeZiimaIf-goC1QoE7-eaIrElIJKEPhLkg&s'; discordIcon.style.width = '24px'; discordIcon.style.height = '24px'; discordIcon.alt = 'Discord Icon'; disBtn.appendChild(discordIcon); // Add hover effect for the Discord button disBtn.onmouseover = () => { disBtn.style.transform = 'scale(1.05)'; }; disBtn.onmouseout = () => { disBtn.style.transform = 'scale(1)'; }; // Add click event to navigate to Discord link disBtn.onclick = () => { window.open('https://discord.gg/sVsrMNzj', '_blank'); }; // Add "Visit our tool at:" label const githubLabel = document.createElement('h3'); githubLabel.textContent = 'Visit our tool at:'; githubLabel.style.fontSize = '20px'; githubLabel.style.color = '#000'; githubLabel.style.marginRight = '10px'; githubLabel.style.marginTop = '-30px'; // Add "Github" button with icon const gitBtn = document.createElement('button'); gitBtn.style.padding = '10px'; gitBtn.style.marginLeft = '278px' gitBtn.style.marginTop = '20px' gitBtn.style.backgroundColor = '#000000'; // Blue background gitBtn.style.borderRadius = '12px'; // Rounded corners gitBtn.style.border = 'none'; gitBtn.style.cursor = 'pointer'; gitBtn.style.width = '40px'; // Adjust width to fit the icon gitBtn.style.height = '40px'; // Adjust height to fit the icon gitBtn.style.display = 'inline-flex'; gitBtn.style.alignItems = 'center'; gitBtn.style.justifyContent = 'center'; gitBtn.style.transition = 'background-color 0.3s, transform 0.3s'; const githubIcon = document.createElement('img'); githubIcon.src = 'https://cdn.discordapp.com/attachments/1265479273209139200/1268477872952180746/github-6980894_960_720.webp?ex=66d81314&is=66d6c194&hm=dd38329c65f3e28b720e4cd00617cf7004da0359755e3d4402c8197e96d2bf41&'; githubIcon.style.width = '24px'; githubIcon.style.height = '24px'; githubIcon.alt = 'Github Icon'; gitBtn.appendChild(githubIcon); // Add hover effect for the Discord button gitBtn.onmouseover = () => { gitBtn.style.transform = 'scale(1.05)'; }; gitBtn.onmouseout = () => { gitBtn.style.transform = 'scale(1)'; }; // Add click event to navigate to Discord link gitBtn.onclick = () => { window.open('https://github.com/baolong7651/DuoAG-Basic', '_blank'); }; // Create the button element const patreonBtn = document.createElement('button'); patreonBtn.style.display = 'flex'; patreonBtn.style.alignItems = 'center'; patreonBtn.style.padding = '8px 33px'; patreonBtn.style.marginLeft = '166px'; patreonBtn.style.marginTop = '-454px'; patreonBtn.style.background = 'linear-gradient(45deg, #d4a5f9, #7ebafc, #ff9a8b)'; // Gradient background patreonBtn.style.color = '#fff'; patreonBtn.style.border = 'none'; patreonBtn.style.borderRadius = '8px'; patreonBtn.style.cursor = 'pointer'; patreonBtn.style.fontSize = '16px'; patreonBtn.style.transition = 'background-color 0.3s, transform 0.3s'; // Add icon to the button const patreonicon = document.createElement('img'); patreonicon.src = 'https://cdn.discordapp.com/attachments/1270361411452932216/1275801063982895114/tai_xuong-removebg-preview.png?ex=66d85954&is=66d707d4&hm=60208c4af0bc8df140410e875f7a01b75ceac0ec78d8ec1226c36788312c1c41&'; patreonicon.style.width = '28px'; // Adjust the size as needed patreonicon.style.height = '28px'; patreonicon.style.marginRight = '8px'; // Space between icon and text patreonBtn.appendChild(patreonicon); // Add text to the button const btnText = document.createElement('span'); btnText.textContent = 'Patreon'; patreonBtn.appendChild(btnText); // Hover effects patreonBtn.onmouseover = () => { patreonBtn.style.transform = 'scale(1.05)'; }; patreonBtn.onmouseout = () => { patreonBtn.style.transform = 'scale(1)'; }; // Add click event to navigate to Patreon link patreonBtn.onclick = () => { window.open('https://www.patreon.com/fr-FR', '_blank'); }; // Add "Terms of Service" button const TOSBtn = document.createElement('button'); TOSBtn.style.position = 'relative'; TOSBtn.style.padding = '20px 50px'; TOSBtn.style.marginRight = '10px'; TOSBtn.style.marginTop = '10px'; TOSBtn.style.backgroundColor = '#0080ff'; // Updated background color TOSBtn.style.color = '#fff'; TOSBtn.style.border = 'none'; TOSBtn.style.borderRadius = '8px'; TOSBtn.style.cursor = 'pointer'; TOSBtn.style.textAlign = 'center'; TOSBtn.style.fontSize = '16px'; TOSBtn.style.display = 'inline-flex'; TOSBtn.style.alignItems = 'center'; TOSBtn.style.justifyContent = 'center'; TOSBtn.style.gap = '10px'; // Khoảng cách giữa icon và text TOSBtn.style.transition = 'background-color 0.3s, transform 0.3s'; // Add icon to the button const TOSIcon = document.createElement('img'); TOSIcon.src = 'https://cdn.discordapp.com/attachments/1270361411452932216/1280540169652666439/ege4AuZ.png?ex=66d87377&is=66d721f7&hm=43b9f35ca1e5aa7869a911143af7d4e922cbe8f91255c97ca657363400f81f55&'; TOSIcon.style.width = '40px'; // Tăng kích thước icon TOSIcon.style.height = '40px'; TOSIcon.style.objectFit = 'contain'; // Đảm bảo icon không bị biến dạng TOSIcon.style.position = 'absolute'; TOSIcon.style.left = '10px'; // Điều chỉnh vị trí icon trong nút // Wrap the text in a span to control text placement const TOSText = document.createElement('span'); TOSText.textContent = 'Terms of Service'; TOSText.style.left = '10px'; // Điều chỉnh vị trí icon trong nút // Append icon and text to the button TOSBtn.appendChild(TOSIcon); TOSBtn.appendChild(TOSText); // Add hover effects TOSBtn.onmouseover = () => { TOSBtn.style.transform = 'scale(1.05)'; }; TOSBtn.onmouseout = () => { TOSBtn.style.transform = 'scale(1)'; }; // Add click event to the button TOSBtn.addEventListener('click', () => { showTOSSection(); }); // Show the TOS section function showTOSSection() { const TOSSection = document.createElement('div'); TOSSection.style.position = 'fixed'; TOSSection.style.marginRight = '0px' TOSSection.style.marginTop = '30px' TOSSection.style.top = '20px'; TOSSection.style.right = '20px'; TOSSection.style.backgroundColor = '#fff'; TOSSection.style.padding = '15px'; TOSSection.style.overflow = 'auto'; TOSSection.style.border = '1px solid #ddd'; TOSSection.style.borderRadius = '7px'; TOSSection.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)'; TOSSection.style.zIndex = '9999'; TOSSection.style.width ='350px'; TOSSection.style.height = '670px'; TOSSection.style.maxWidth = '90%'; TOSSection.style.fontFamily = 'Arial, sans-serif'; TOSSection.appendChild(backTOSBtn); TOSSection.appendChild(TOSTitle); TOSSection.appendChild(TOSTitle1); TOSSection.appendChild(TOSDesc1); TOSSection.appendChild(TOSTitle2); TOSSection.appendChild(TOSDesc2); TOSSection.appendChild(TOSTitle3); TOSSection.appendChild(TOSDesc3); TOSSection.appendChild(TOSTitle4); TOSSection.appendChild(TOSDesc4); TOSSection.appendChild(anotherTOSDesc4); TOSSection.appendChild(TOSTitle5); TOSSection.appendChild(TOSDesc5); TOSSection.appendChild(TOSTitle6); TOSSection.appendChild(TOSDesc6); TOSSection.appendChild(anotherTOSDesc6); TOSSection.appendChild(TOSTitle7); TOSSection.appendChild(TOSDesc7); TOSSection.appendChild(anotherTOSDesc7); TOSSection.appendChild(TOSTitle8); TOSSection.appendChild(TOSDesc8); TOSSection.appendChild(TOSTitle9); TOSSection.appendChild(TOSDesc9); TOSSection.appendChild(TOSTitle10); TOSSection.appendChild(TOSDesc10); backTOSBtn.addEventListener('click', () => { document.body.removeChild(TOSSection); }); document.body.appendChild(TOSSection); }; // Add "Back" button const backTOSBtn = document.createElement('button'); backTOSBtn.textContent = 'Back'; backTOSBtn.style.padding = '10px 15px'; backTOSBtn.style.backgroundColor = '#dc3545'; backTOSBtn.style.color = '#fff'; backTOSBtn.style.border = 'none'; backTOSBtn.style.borderRadius = '15px'; backTOSBtn.style.cursor = 'pointer'; backTOSBtn.style.fontSize = '14px'; backTOSBtn.style.transition = 'background-color 0.3s, transform 0.3s'; backTOSBtn.onmouseover = () => { backTOSBtn.style.backgroundColor = '#c82333'; backTOSBtn.style.transform = 'scale(1.05)'; }; backTOSBtn.onmouseout = () => { backTOSBtn.style.backgroundColor = '#dc3545'; backTOSBtn.style.transform = 'scale(1)'; }; // Show the next section function showSettingsSection() { const settingsSection = document.createElement('div'); settingsSection.style.position = 'fixed'; settingsSection.style.marginRight = '0px' settingsSection.style.marginTop = '30px' settingsSection.style.top = '20px'; settingsSection.style.right = '20px'; settingsSection.style.backgroundColor = '#fff'; settingsSection.style.padding = '15px'; settingsSection.style.border = '1px solid #ddd'; settingsSection.style.borderRadius = '7px'; settingsSection.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)'; settingsSection.style.zIndex = '9999'; settingsSection.style.width ='350px'; settingsSection.style.height = '670px'; settingsSection.style.maxWidth = '90%'; settingsSection.style.fontFamily = 'Arial, sans-serif'; settingsSection.appendChild(backSetBtn); settingsSection.appendChild(statsContainer); settingsSection.appendChild(toggleLabel); settingsSection.appendChild(settingsTitle); settingsSection.appendChild(disBtn); settingsSection.appendChild(discordLabel); settingsSection.appendChild(gitBtn); settingsSection.appendChild(githubLabel); backSetBtn.addEventListener('click', () => { document.body.removeChild(settingsSection); }); document.body.appendChild(settingsSection); }; // Add "Back" button const backSetBtn = document.createElement('button'); backSetBtn.textContent = 'Back'; backSetBtn.style.padding = '10px 15px'; backSetBtn.style.backgroundColor = '#dc3545'; backSetBtn.style.color = '#fff'; backSetBtn.style.border = 'none'; backSetBtn.style.borderRadius = '15px'; backSetBtn.style.cursor = 'pointer'; backSetBtn.style.fontSize = '14px'; backSetBtn.style.transition = 'background-color 0.3s, transform 0.3s'; backSetBtn.onmouseover = () => { backSetBtn.style.backgroundColor = '#c82333'; backSetBtn.style.transform = 'scale(1.05)'; }; backSetBtn.onmouseout = () => { backSetBtn.style.backgroundColor = '#dc3545'; backSetBtn.style.transform = 'scale(1)'; }; // Create the button element const setBtn = document.createElement('button'); setBtn.style.display = 'flex'; setBtn.style.alignItems = 'center'; setBtn.style.padding = '10px 35px'; setBtn.style.marginLeft = '0px'; setBtn.style.marginTop = '65px'; setBtn.style.backgroundColor = '#b4baba'; setBtn.style.color = '#000'; setBtn.style.border = 'none'; setBtn.style.borderRadius = '8px'; setBtn.style.cursor = 'pointer'; setBtn.style.fontSize = '16px'; setBtn.style.transition = 'background-color 0.3s, transform 0.3s'; // Create the icon element const icon = document.createElement('img'); icon.src = 'https://cdn.discordapp.com/attachments/1265663796467466294/1280535854250721301/RtZQlyF.png?ex=66d86f72&is=66d71df2&hm=60c8f969c002be8ea2387668d7042025c22f54a4bee489b5ff2b9f4324414f8e&'; icon.alt = 'Settings Icon'; icon.style.borderRadius = '10px'; icon.style.width = '25px'; icon.style.height = '25px'; icon.style.marginRight = '12px'; // Space between icon and text // Add icon and text to the button setBtn.appendChild(icon); setBtn.appendChild(document.createTextNode('Setting')); // Hover effects setBtn.onmouseover = () => { setBtn.style.transform = 'scale(1.05)'; }; setBtn.onmouseout = () => { setBtn.style.transform = 'scale(1)'; }; // Click event setBtn.addEventListener('click', () => { showSettingsSection(); }); // Tạo phần FPS và Ping const statsContainer = document.createElement('div'); statsContainer.style.marginTop = '20px'; statsContainer.style.fontSize = '14px'; statsContainer.style.color = 'black'; statsContainer.style.backgroundColor = '#b3b4b5'; statsContainer.style.border = '3px solid #6f7070'; statsContainer.style.borderRadius = '5px'; const fpsDisplay = document.createElement('div'); fpsDisplay.textContent = 'FPS: 0'; fpsDisplay.style.marginLeft = '10px'; statsContainer.appendChild(fpsDisplay); const pingDisplay = document.createElement('div'); pingDisplay.textContent = 'Ping: 0 ms'; pingDisplay.style.marginLeft = '10px'; statsContainer.appendChild(pingDisplay); // Hàm cập nhật FPS let lastFrameTime = performance.now(); function updateFPS() { const now = performance.now(); const fps = Math.round(1000 / (now - lastFrameTime)); lastFrameTime = now; fpsDisplay.textContent = `FPS: ${fps}`; requestAnimationFrame(updateFPS); } updateFPS(); // Hàm cập nhật Ping function updatePing() { const start = performance.now(); fetch('https://www.duolingo.com/learn') // Thay đổi URL này thành URL của máy chủ bạn .then(response => response.text()) .then(() => { const ping = Math.round(performance.now() - start); pingDisplay.textContent = `Ping: ${ping} ms`; }) .catch(() => { pingDisplay.textContent = 'Ping: Error'; }) .finally(() => { setTimeout(updatePing, 5000); // Cập nhật ping mỗi 5 giây }); } updatePing(); // Tạo label và công tắc Toggle Dark Mode const toggleLabel = document.createElement('label'); toggleLabel.style.display = 'flex'; toggleLabel.style.alignItems = 'center'; toggleLabel.style.justifyContent = 'space-between'; toggleLabel.style.marginTop = '20px'; // Thêm khoảng cách từ trên xuống toggleLabel.style.fontSize = '16px'; // Thêm biểu tượng dark mode vào bên trái của văn bản const darkModeIcon = document.createElement('img'); darkModeIcon.src = 'https://cdsassets.apple.com/live/7WUAS350/images/inline-icons/ios-17-dark-mode-icon.png'; darkModeIcon.style.width = '24px'; // Kích thước biểu tượng darkModeIcon.style.height = '24px'; darkModeIcon.style.marginRight = '-80px'; // Giảm khoảng cách giữa icon và văn bản toggleLabel.appendChild(darkModeIcon); // Tạo văn bản Toggle Dark Mode const toggleText = document.createElement('span'); toggleText.textContent = 'Toggle Dark Mode'; toggleLabel.appendChild(toggleText); // Tạo công tắc bật/tắt const toggleSwitch = document.createElement('div'); toggleSwitch.style.position = 'relative'; toggleSwitch.style.width = '50px'; toggleSwitch.style.height = '25px'; toggleSwitch.style.background = '#ccc'; toggleSwitch.style.borderRadius = '25px'; toggleSwitch.style.cursor = 'pointer'; toggleSwitch.style.transition = 'background-color 0.3s ease'; toggleLabel.appendChild(toggleSwitch); const toggleKnob = document.createElement('div'); toggleKnob.style.position = 'absolute'; toggleKnob.style.top = '2px'; toggleKnob.style.left = '2px'; toggleKnob.style.width = '21px'; toggleKnob.style.height = '21px'; toggleKnob.style.background = 'white'; toggleKnob.style.borderRadius = '50%'; toggleKnob.style.boxShadow = '0 2px 4px rgba(0, 0, 0, 0.2)'; toggleKnob.style.transition = 'left 0.3s ease'; toggleSwitch.appendChild(toggleKnob); // Hàm chuyển đổi Dark Mode với animation function toggleDarkMode() { if (isDarkModeEnabled()) { // Chuyển về Light Mode container.classList.remove('dark-mode'); container.style.background = 'linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.3))'; container.style.color = 'black'; container.style.border = '1px solid #ddd'; toggleSwitch.style.background = '#ccc'; toggleKnob.style.left = '2px'; } else { // Chuyển sang Dark Mode container.classList.add('dark-mode'); container.style.background = 'linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.5))'; container.style.color = 'white'; container.style.border = '1px solid #333'; toggleSwitch.style.background = '#4caf50'; toggleKnob.style.left = '27px'; } } // Gán sự kiện click cho công tắc toggleSwitch.addEventListener('click', function() { toggleDarkMode(); }); // Cho phép kéo công tắc var isDragging = false; toggleKnob.addEventListener('mousedown', function() { isDragging = true; }); document.addEventListener('mouseup', function() { isDragging = false; }); document.addEventListener('mousemove', function(e) { if (isDragging) { var rect = toggleSwitch.getBoundingClientRect(); var offsetX = e.clientX - rect.left; if (offsetX > rect.width / 2) { toggleSwitch.style.background = '#4caf50'; toggleKnob.style.left = '27px'; container.classList.add('dark-mode'); container.style.background = 'linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.5))'; container.style.color = 'white'; container.style.border = '1px solid #333'; } else { toggleSwitch.style.background = '#ccc'; toggleKnob.style.left = '2px'; container.classList.remove('dark-mode'); container.style.background = 'linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.3))'; container.style.color = 'black'; container.style.border = '1px solid #ddd'; } } }) // Add content to the next section const settingsTitle = document.createElement('h3'); settingsTitle.textContent = 'Settings'; settingsTitle.style.margin = '0 0 10px'; settingsTitle.style.marginRight = '-10px'; settingsTitle.style.marginTop = '-135px' settingsTitle.style.fontSize = '20px'; settingsTitle.style.color = '#333'; settingsTitle.style.textAlign = 'center'; // Add content to the next section const sectionTitle = document.createElement('h3'); sectionTitle.textContent = 'More Features'; sectionTitle.style.margin = '0 0 10px'; sectionTitle.style.marginRight = '-10px'; sectionTitle.style.marginTop = '-75px' sectionTitle.style.fontSize = '20px'; sectionTitle.style.color = '#333'; sectionTitle.style.textAlign = 'center'; const firstDesc = document.createElement('p'); firstDesc.textContent = 'MIT License Copyright © 2024 Interstellar, NowaysZ' firstDesc.style.margin = '0'; firstDesc.style.marginTop = '15px' firstDesc.style.fontSize = '14px'; firstDesc.style.color = '#080808'; firstDesc.style.textAlign = 'center'; firstDesc.style.fontFamily = 'Arial, San-Serif'; const secondDesc = document.createElement('p'); secondDesc.textContent = 'Permission is granted to use, copy, modify, and distribute the Software, subject to the following conditions:'; secondDesc.style.margin = 'px'; secondDesc.style.marginTop = '15px' secondDesc.style.fontSize = '14px'; secondDesc.style.color = '#080808'; secondDesc.style.textAlign = 'center'; secondDesc.style.fontFamily = 'Arial, San-Serif'; const thirdDesc = document.createElement('p'); thirdDesc.textContent = 'No Copying or Modification: You may not copy, modify, or transform the graphical user interface (GUI) of the Software. No Illegal Use: The Software must not be used for illegal activities or unethical purposes, including unauthorized access or theft. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY'; thirdDesc.style.margin = '0'; thirdDesc.style.marginTop = '15px' thirdDesc.style.fontSize = '14px'; thirdDesc.style.color = '#080808'; thirdDesc.style.textAlign = 'center'; thirdDesc.style.fontFamily = 'Arial, San-Serif'; const fourthDesc = document.createElement('p'); fourthDesc.textContent = 'You should read the MIT License and Terms of Service before using our tool'; fourthDesc.style.margin = '0'; fourthDesc.style.marginTop = '15px' fourthDesc.style.fontSize = '16px'; fourthDesc.style.color = '#333'; fourthDesc.style.textAlign = 'center'; // Add content to the TOS section const TOSTitle = document.createElement('h3'); TOSTitle.textContent = 'Terms of Service'; TOSTitle.style.margin = '0 0 10px'; TOSTitle.style.marginRight = '-15px'; TOSTitle.style.marginTop = '-25px' TOSTitle.style.fontSize = '20px'; TOSTitle.style.color = '#333'; TOSTitle.style.textAlign = 'center'; const TOSTitle1 = document.createElement('p'); TOSTitle1.textContent = '1. Introduction' TOSTitle1.style.margin = '0'; TOSTitle1.style.marginTop = '5px' TOSTitle1.style.fontSize = '14px'; TOSTitle1.style.color = '#080808'; TOSTitle1.style.textAlign = 'left'; TOSTitle1.style.fontFamily = 'Arial, San-Serif'; const TOSDesc1 = document.createElement('p'); TOSDesc1.textContent = '- Welcome to DuoAgent. DuoAgent is a tool designed to help manage accounts using tokens. By using DuoAgent, you agree to comply with and be bound by the following terms and conditions' TOSDesc1.style.margin = '0'; TOSDesc1.style.marginTop = '5px' TOSDesc1.style.fontSize = '14px'; TOSDesc1.style.color = '#080808'; TOSDesc1.style.textAlign = 'left'; TOSDesc1.style.fontFamily = 'Arial, San-Serif'; const TOSTitle2 = document.createElement('p'); TOSTitle2.textContent = '2. Acceptance of Terms' TOSTitle2.style.margin = '0'; TOSTitle2.style.marginTop = '5px' TOSTitle2.style.fontSize = '14px'; TOSTitle2.style.color = '#080808'; TOSTitle2.style.textAlign = 'left'; TOSTitle2.style.fontFamily = 'Arial, San-Serif'; const TOSDesc2 = document.createElement('p'); TOSDesc2.textContent = '- By accessing and using DuoAgent, you accept and agree to be bound by these Terms of Service. If you do not agree with any part of these terms, you must not use DuoAgent.' TOSDesc2.style.margin = '0'; TOSDesc2.style.marginTop = '5px' TOSDesc2.style.fontSize = '14px'; TOSDesc2.style.color = '#080808'; TOSDesc2.style.textAlign = 'left'; TOSDesc2.style.fontFamily = 'Arial, San-Serif'; const TOSTitle3 = document.createElement('p'); TOSTitle3.textContent = '3. Use of DuoAgent' TOSTitle3.style.margin = '0'; TOSTitle3.style.marginTop = '5px' TOSTitle3.style.fontSize = '14px'; TOSTitle3.style.color = '#080808'; TOSTitle3.style.textAlign = 'left'; TOSTitle3.style.fontFamily = 'Arial, San-Serif'; const TOSDesc3 = document.createElement('p'); TOSDesc3.textContent = '- DuoAgent is provided for the purpose of managing accounts via tokens. You agree to use DuoAgent only for lawful purposes and in a way that does not infringe the rights of, restrict, or inhibit anyone else use of DuoAgent.' TOSDesc3.style.margin = '0'; TOSDesc3.style.marginTop = '5px' TOSDesc3.style.fontSize = '14px'; TOSDesc3.style.color = '#080808'; TOSDesc3.style.textAlign = 'left'; TOSDesc3.style.fontFamily = 'Arial, San-Serif'; const TOSTitle4 = document.createElement('p'); TOSTitle4.textContent = '4. User Responsibilities' TOSTitle4.style.margin = '0'; TOSTitle4.style.marginTop = '5px' TOSTitle4.style.fontSize = '14px'; TOSTitle4.style.color = '#080808'; TOSTitle4.style.textAlign = 'left'; TOSTitle4.style.fontFamily = 'Arial, San-Serif'; const TOSDesc4 = document.createElement('p'); TOSDesc4.textContent = '- Account Security: You are responsible for maintaining the confidentiality of your tokens and any activities that occur under your tokens.' TOSDesc4.style.margin = '0'; TOSDesc4.style.marginTop = '5px' TOSDesc4.style.fontSize = '14px'; TOSDesc4.style.color = '#080808'; TOSDesc4.style.textAlign = 'left'; TOSDesc4.style.fontFamily = 'Arial, San-Serif'; const anotherTOSDesc4 = document.createElement('p'); anotherTOSDesc4.textContent = '- Prohibited Uses: You may not use DuoAgent for any illegal or unauthorized purpose. You agree not to, in the use of DuoAgent, violate any laws in your jurisdiction (including but not limited to copyright laws).' anotherTOSDesc4.style.margin = '0'; anotherTOSDesc4.style.marginTop = '5px' anotherTOSDesc4.style.fontSize = '14px'; anotherTOSDesc4.style.color = '#080808'; anotherTOSDesc4.style.textAlign = 'left'; anotherTOSDesc4.style.fontFamily = 'Arial, San-Serif'; const TOSTitle5 = document.createElement('p'); TOSTitle5.textContent = '5. Intellectual Property' TOSTitle5.style.margin = '0'; TOSTitle5.style.marginTop = '5px' TOSTitle5.style.fontSize = '14px'; TOSTitle5.style.color = '#080808'; TOSTitle5.style.textAlign = 'left'; TOSTitle5.style.fontFamily = 'Arial, San-Serif'; const TOSDesc5 = document.createElement('p'); TOSDesc5.textContent = '- All content included on DuoAgent, such as text, graphics, logos, and software, is the property of DuoAgent or its content suppliers and protected by international copyright laws. The compilation of all content on this site is the exclusive property of DuoAgent.' TOSDesc5.style.margin = '0'; TOSDesc5.style.marginTop = '5px' TOSDesc5.style.fontSize = '14px'; TOSDesc5.style.color = '#080808'; TOSDesc5.style.textAlign = 'left'; TOSDesc5.style.fontFamily = 'Arial, San-Serif'; const TOSTitle6 = document.createElement('p'); TOSTitle6.textContent = '6. Copying and Redistribution' TOSTitle6.style.margin = '0'; TOSTitle6.style.marginTop = '5px' TOSTitle6.style.fontSize = '14px'; TOSTitle6.style.color = '#080808'; TOSTitle6.style.textAlign = 'left'; TOSTitle6.style.fontFamily = 'Arial, San-Serif'; const TOSDesc6 = document.createElement('p'); TOSDesc6.textContent = '- You may not copy, distribute, or create derivative works based on DuoAgent without prior written consent from us.' TOSDesc6.style.margin = '0'; TOSDesc6.style.marginTop = '5px' TOSDesc6.style.fontSize = '14px'; TOSDesc6.style.color = '#080808'; TOSDesc6.style.textAlign = 'left'; TOSDesc6.style.fontFamily = 'Arial, San-Serif'; const anotherTOSDesc6 = document.createElement('p'); anotherTOSDesc6.textContent = '- Unauthorized use of DuoAgent`s content is strictly prohibited and may violate copyright laws.' anotherTOSDesc6.style.margin = '0'; anotherTOSDesc6.style.marginTop = '5px' anotherTOSDesc6.style.fontSize = '14px'; anotherTOSDesc6.style.color = '#080808'; anotherTOSDesc6.style.textAlign = 'left'; anotherTOSDesc6.style.fontFamily = 'Arial, San-Serif'; const TOSTitle7 = document.createElement('p'); TOSTitle7.textContent = '7. Disclaimers' TOSTitle7.style.margin = '0'; TOSTitle7.style.marginTop = '5px' TOSTitle7.style.fontSize = '14px'; TOSTitle7.style.color = '#080808'; TOSTitle7.style.textAlign = 'left'; TOSTitle7.style.fontFamily = 'Arial, San-Serif'; const TOSDesc7 = document.createElement('p'); TOSDesc7.textContent = '- Availability: DuoAgent is provided on an "as is" and "as available" basis. We do not guarantee that DuoAgent will be available at all times or without interruptions.' TOSDesc7.style.margin = '0'; TOSDesc7.style.marginTop = '5px' TOSDesc7.style.fontSize = '14px'; TOSDesc7.style.color = '#080808'; TOSDesc7.style.textAlign = 'left'; TOSDesc7.style.fontFamily = 'Arial, San-Serif'; const anotherTOSDesc7 = document.createElement('p'); anotherTOSDesc7.textContent = '- Warranties: We do not warrant that DuoAgent will meet your requirements or that it will be error-free or that defects will be corrected.' anotherTOSDesc7.style.margin = '0'; anotherTOSDesc7.style.marginTop = '5px' anotherTOSDesc7.style.fontSize = '14px'; anotherTOSDesc7.style.color = '#080808'; anotherTOSDesc7.style.textAlign = 'left'; anotherTOSDesc7.style.fontFamily = 'Arial, San-Serif'; const TOSTitle8 = document.createElement('p'); TOSTitle8.textContent = '8. Limitation of Liability' TOSTitle8.style.margin = '0'; TOSTitle8.style.marginTop = '5px' TOSTitle8.style.fontSize = '14px'; TOSTitle8.style.color = '#080808'; TOSTitle8.style.textAlign = 'left'; TOSTitle8.style.fontFamily = 'Arial, San-Serif'; const TOSDesc8 = document.createElement('p'); TOSDesc8.textContent = '- In no event shall DuoAgent be liable for any direct, indirect, incidental, special, consequential, or exemplary damages, including but not limited to damages for loss of profits, goodwill, use, data, or other intangible losses r###lting from the use or the inability to use DuoAgent.' TOSDesc8.style.margin = '0'; TOSDesc8.style.marginTop = '5px' TOSDesc8.style.fontSize = '14px'; TOSDesc8.style.color = '#080808'; TOSDesc8.style.textAlign = 'left'; TOSDesc8.style.fontFamily = 'Arial, San-Serif'; const TOSTitle9 = document.createElement('p'); TOSTitle9.textContent = '9. Changes to the Terms of Service' TOSTitle9.style.margin = '0'; TOSTitle9.style.marginTop = '5px' TOSTitle9.style.fontSize = '14px'; TOSTitle9.style.color = '#080808'; TOSTitle9.style.textAlign = 'left'; TOSTitle9.style.fontFamily = 'Arial, San-Serif'; const TOSDesc9 = document.createElement('p'); TOSDesc9.textContent = '- We reserve the right to modify these Terms of Service at any time. Any changes will be effective immediately upon posting on this page. Your continued use of DuoAgent following the posting of changes constitutes your acceptance of such changes.' TOSDesc9.style.margin = '0'; TOSDesc9.style.marginTop = '5px' TOSDesc9.style.fontSize = '14px'; TOSDesc9.style.color = '#080808'; TOSDesc9.style.textAlign = 'left'; TOSDesc9.style.fontFamily = 'Arial, San-Serif'; const TOSTitle10 = document.createElement('p'); TOSTitle10.textContent = '10. Contact Information' TOSTitle10.style.margin = '0'; TOSTitle10.style.marginTop = '5px' TOSTitle10.style.fontSize = '14px'; TOSTitle10.style.color = '#080808'; TOSTitle10.style.textAlign = 'left'; TOSTitle10.style.fontFamily = 'Arial, San-Serif'; const TOSDesc10 = document.createElement('p'); TOSDesc10.textContent = '- If you have any questions about these Terms of Service, please contact us at https://discord.gg/b82gQ4fT.' TOSDesc10.style.margin = '0'; TOSDesc10.style.marginTop = '5px' TOSDesc10.style.fontSize = '14px'; TOSDesc10.style.color = '#080808'; TOSDesc10.style.textAlign = 'left'; TOSDesc10.style.fontFamily = 'Arial, San-Serif'; // Add click event to the "Next" button to show the next section nextBtn.addEventListener('click', () => { showNextSection(); }); // Automatically update the active token display with the token from cookies activeTokenDisplay.textContent = getTokenFromCookie() || 'No active token' })();