Duolingo Account Manager

Access Duolingo accounts using tokens with improved GUI and one of the best management script ever.

  1. // ==UserScript==
  2. // @name Duolingo Account Manager
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.2.1.1 https://discord.gg/NYxtshxq68
  5. // @description Access Duolingo accounts using tokens with improved GUI and one of the best management script ever.
  6. // @author Cube Cloud https://discord.gg/NYxtshxq68
  7. // @match *://*.duolingo.com/*
  8. // @grant none
  9. // @license MIT
  10. // @icon https://raw.githubusercontent.com/bingcube/source/refs/heads/main/image-removebg-preview%20(25).png
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16.  
  17. const style = document.createElement('style');
  18. style.textContent = `
  19. @font-face {
  20. font-family: 'MyCloud-SF-Pro-Rounded-Semibold';
  21. src: url('https://ourcloud2.vercel.app/fonts/MyCloud-SF-Pro-Rounded-Semibold.ttf') format('truetype');
  22. }
  23. body, div, span, input, button, textarea {
  24. font-family: 'MyCloud-SF-Pro-Rounded-Semibold', Arial, sans-serif;
  25. }
  26. `;
  27. document.head.appendChild(style);
  28.  
  29. function getTokenFromCookie() {
  30. const cookie = document.cookie
  31. .split('; ')
  32. .find(cookie => cookie.startsWith('jwt_token='));
  33. return cookie ? cookie.split('=')[1] : '';
  34. }
  35.  
  36. function setTokenToCookie(token) {
  37. document.cookie = `jwt_token=${token}; path=/`;
  38. }
  39.  
  40. const container = document.createElement('div');
  41. container.style.position = 'fixed';
  42. container.style.top = '20px';
  43. container.style.right = '20px';
  44. container.style.background = '#fff';
  45. container.style.padding = '15px';
  46. container.style.border = '1px solid #ddd';
  47. container.style.borderRadius = '12px';
  48. container.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)';
  49. container.style.zIndex = '9999';
  50. container.style.width = '350px';
  51. container.style.height = '570px';
  52. container.style.maxWidth = '90%';
  53. document.body.appendChild(container);
  54.  
  55.  
  56.  
  57.  
  58.  
  59. const headerContainer = document.createElement('div');
  60. headerContainer.style.display = 'flex';
  61. headerContainer.style.alignItems = 'center';
  62. headerContainer.style.justifyContent = 'space-between';
  63. container.appendChild(headerContainer);
  64.  
  65.  
  66. const title = document.createElement('h2');
  67. title.textContent = 'DuoAgent';
  68. title.style.margin = '0';
  69. title.style.fontSize = '20px';
  70. title.style.color = '#333';
  71. headerContainer.appendChild(title);
  72.  
  73.  
  74. const versionLabel = document.createElement('div');
  75. versionLabel.textContent = '1.0 Alpha 2';
  76. versionLabel.style.backgroundColor = '#dc3545';
  77. versionLabel.style.marginTop = '-10px';
  78. versionLabel.style.color = '#fff';
  79. versionLabel.style.padding = '5px 10px';
  80. versionLabel.style.borderRadius = '5px';
  81. versionLabel.style.fontSize = '12px';
  82. headerContainer.appendChild(versionLabel);
  83.  
  84.  
  85. const buttonContainer = document.createElement('div');
  86. buttonContainer.style.display = 'flex';
  87. buttonContainer.style.alignItems = 'center';
  88. headerContainer.appendChild(buttonContainer);
  89.  
  90.  
  91. const nextBtn = document.createElement('button');
  92. nextBtn.textContent = 'Next';
  93. nextBtn.style.marginRight = '10px';
  94. nextBtn.style.marginTop = '-10px';
  95. nextBtn.style.padding = '10px 15px';
  96. nextBtn.style.backgroundColor = '#28a745';
  97. nextBtn.style.color = '#fff';
  98. nextBtn.style.border = 'none';
  99. nextBtn.style.borderRadius = '15px';
  100. nextBtn.style.cursor = 'pointer';
  101. nextBtn.style.fontSize = '14px';
  102. nextBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  103. nextBtn.onmouseover = () => {
  104. nextBtn.style.backgroundColor = '#218838';
  105. nextBtn.style.transform = 'scale(1.05)';
  106. };
  107. nextBtn.onmouseout = () => {
  108. nextBtn.style.backgroundColor = '#28a745';
  109. nextBtn.style.transform = 'scale(1)';
  110. };
  111. buttonContainer.appendChild(nextBtn);
  112.  
  113.  
  114. const hideShowBtn = document.createElement('button');
  115. hideShowBtn.textContent = 'Hide';
  116. hideShowBtn.style.padding = '10px 15px';
  117. hideShowBtn.style.marginTop = '-10px';
  118. hideShowBtn.style.backgroundColor = '#007bff';
  119. hideShowBtn.style.color = '#fff';
  120. hideShowBtn.style.border = 'none';
  121. hideShowBtn.style.borderRadius = '15px';
  122. hideShowBtn.style.cursor = 'pointer';
  123. hideShowBtn.style.fontSize = '14px';
  124. hideShowBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  125. hideShowBtn.onmouseover = () => {
  126. hideShowBtn.style.backgroundColor = '#0056b3';
  127. hideShowBtn.style.transform = 'scale(1.05)';
  128. };
  129. hideShowBtn.onmouseout = () => {
  130. hideShowBtn.style.backgroundColor = '#007bff';
  131. hideShowBtn.style.transform = 'scale(1)';
  132. };
  133. buttonContainer.appendChild(hideShowBtn);
  134.  
  135. let isHidden = false;
  136. hideShowBtn.addEventListener('click', () => {
  137. if (isHidden) {
  138. container.style.height = 'auto';
  139. container.style.overflow = 'visible';
  140. hideShowBtn.textContent = 'Hide';
  141. } else {
  142. container.style.height = '50px';
  143. container.style.overflow = 'hidden';
  144. hideShowBtn.textContent = 'Show';
  145. }
  146. isHidden = !isHidden;
  147. });
  148.  
  149.  
  150. const activeTokenDisplay = document.createElement('div');
  151. activeTokenDisplay.style.margin = '10px 0';
  152. activeTokenDisplay.style.padding = '10px';
  153. activeTokenDisplay.style.border = '1px solid #ddd';
  154. activeTokenDisplay.style.borderRadius = '8px';
  155. activeTokenDisplay.style.backgroundColor = '#f8f9fa';
  156. activeTokenDisplay.style.fontSize = '14px';
  157. activeTokenDisplay.style.color = '#333';
  158. activeTokenDisplay.style.textAlign = 'center';
  159. activeTokenDisplay.style.wordWrap = 'break-word';
  160. activeTokenDisplay.style.overflow = 'hidden';
  161. activeTokenDisplay.style.textOverflow = 'ellipsis';
  162. activeTokenDisplay.textContent = getTokenFromCookie() || 'No active token';
  163. container.appendChild(activeTokenDisplay);
  164.  
  165.  
  166.  
  167. const desc = document.createElement('p');
  168. desc.textContent = 'Enter a token and click "Add Token". Click on a token slot to use it.';
  169. desc.style.margin = '10px 0 20px';
  170. desc.style.fontSize = '14px';
  171. desc.style.color = '#555';
  172. desc.style.textAlign = 'center';
  173. container.appendChild(desc);
  174.  
  175.  
  176. const tokenInputContainer = document.createElement('div');
  177. tokenInputContainer.style.display = 'flex';
  178. tokenInputContainer.style.flexDirection = 'column';
  179. tokenInputContainer.style.alignItems = 'center';
  180. tokenInputContainer.style.marginBottom = '20px';
  181. container.appendChild(tokenInputContainer);
  182.  
  183.  
  184. const tokenInput = document.createElement('input');
  185. tokenInput.placeholder = 'Enter token...';
  186. tokenInput.style.width = '100%';
  187. tokenInput.style.padding = '12px';
  188. tokenInput.style.border = '1px solid #ddd';
  189. tokenInput.style.borderRadius = '8px';
  190. tokenInput.style.marginBottom = '10px';
  191. tokenInputContainer.appendChild(tokenInput);
  192.  
  193.  
  194. const buttonsContainer = document.createElement('div');
  195. buttonsContainer.style.display = 'flex';
  196. buttonsContainer.style.justifyContent = 'space-between';
  197. buttonsContainer.style.width = '100%';
  198. tokenInputContainer.appendChild(buttonsContainer);
  199.  
  200.  
  201. const addTokenBtn = document.createElement('button');
  202. addTokenBtn.textContent = 'Add Token';
  203. addTokenBtn.style.flex = '1';
  204. addTokenBtn.style.marginRight = '10px';
  205. addTokenBtn.style.padding = '12px 24px';
  206. addTokenBtn.style.backgroundColor = '#007bff';
  207. addTokenBtn.style.color = '#fff';
  208. addTokenBtn.style.border = 'none';
  209. addTokenBtn.style.borderRadius = '8px';
  210. addTokenBtn.style.cursor = 'pointer';
  211. addTokenBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  212. addTokenBtn.onmouseover = () => {
  213. addTokenBtn.style.backgroundColor = '#0056b3';
  214. addTokenBtn.style.transform = 'scale(1.05)';
  215. };
  216. addTokenBtn.onmouseout = () => {
  217. addTokenBtn.style.backgroundColor = '#007bff';
  218. addTokenBtn.style.transform = 'scale(1)';
  219. };
  220. buttonsContainer.appendChild(addTokenBtn);
  221.  
  222.  
  223. const clearTokensBtn = document.createElement('button');
  224. clearTokensBtn.textContent = 'Clear Tokens';
  225. clearTokensBtn.style.flex = '1';
  226. clearTokensBtn.style.marginLeft = '10px';
  227. clearTokensBtn.style.padding = '12px 24px';
  228. clearTokensBtn.style.backgroundColor = '#dc3545';
  229. clearTokensBtn.style.color = '#fff';
  230. clearTokensBtn.style.border = 'none';
  231. clearTokensBtn.style.borderRadius = '8px';
  232. clearTokensBtn.style.cursor = 'pointer';
  233. clearTokensBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  234. clearTokensBtn.onmouseover = () => {
  235. clearTokensBtn.style.backgroundColor = '#c82333';
  236. clearTokensBtn.style.transform = 'scale(1.05)';
  237. };
  238. clearTokensBtn.onmouseout = () => {
  239. clearTokensBtn.style.backgroundColor = '#dc3545';
  240. clearTokensBtn.style.transform = 'scale(1)';
  241. };
  242. buttonsContainer.appendChild(clearTokensBtn);
  243.  
  244.  
  245. const tokenList = document.createElement('div');
  246. tokenList.style.display = 'flex';
  247. tokenList.style.flexWrap = 'wrap';
  248. tokenList.style.gap = '15px';
  249. container.appendChild(tokenList);
  250.  
  251.  
  252. const createTokenSlot = (id) => {
  253. const slot = document.createElement('div');
  254. slot.id = id;
  255. slot.textContent = id;
  256. slot.style.width = '120px';
  257. slot.style.height = '120px';
  258. slot.style.backgroundColor = '#28a745';
  259. slot.style.color = '#fff';
  260. slot.style.display = 'flex';
  261. slot.style.flexDirection = 'column';
  262. slot.style.justifyContent = 'center';
  263. slot.style.alignItems = 'center';
  264. slot.style.borderRadius = '12px';
  265. slot.style.cursor = 'pointer';
  266. slot.style.fontSize = '12px';
  267. slot.style.textAlign = 'center';
  268. slot.style.boxShadow = '0 2px 6px rgba(0, 0, 0, 0.2)';
  269. slot.onmouseover = () => slot.style.backgroundColor = '#218838';
  270. slot.onmouseout = () => slot.style.backgroundColor = '#28a745';
  271. tokenList.appendChild(slot);
  272. return slot;
  273. };
  274.  
  275.  
  276. const tokenSlots = [createTokenSlot('Slot 1'), createTokenSlot('Slot 2'), createTokenSlot('Slot 3')];
  277.  
  278.  
  279. addTokenBtn.addEventListener('click', () => {
  280. const token = tokenInput.value.trim();
  281. if (token) {
  282. addToken(token);
  283. tokenInput.value = '';
  284. } else {
  285. alert('Please enter a valid token.');
  286. }
  287. });
  288.  
  289.  
  290. clearTokensBtn.addEventListener('click', () => {
  291. displayClearTokenTable();
  292. });
  293.  
  294.  
  295. tokenSlots.forEach(slot => {
  296. slot.addEventListener('click', () => {
  297. const token = slot.getAttribute('data-token');
  298. if (token) {
  299. setTokenToCookie(token);
  300. activeTokenDisplay.textContent = `Active Token: ${token}`;
  301. setTimeout(() => {
  302. window.location.reload();
  303. }, 1000);
  304. }
  305. });
  306. });
  307.  
  308.  
  309. function addToken(token) {
  310. for (const slot of tokenSlots) {
  311. if (!slot.getAttribute('data-token')) {
  312. slot.setAttribute('data-token', token);
  313. slot.innerHTML = `<strong>Token</strong><br>${token.slice(0, 10)}...`;
  314. break;
  315. }
  316. }
  317. }
  318.  
  319.  
  320. function displayClearTokenTable() {
  321. const tableContainer = document.createElement('div');
  322. tableContainer.style.position = 'fixed';
  323. tableContainer.style.top = '50%';
  324. tableContainer.style.left = '50%';
  325. tableContainer.style.transform = 'translate(-50%, -50%)';
  326. tableContainer.style.backgroundColor = '#fff';
  327. tableContainer.style.padding = '20px';
  328. tableContainer.style.border = '1px solid #ddd';
  329. tableContainer.style.borderRadius = '12px';
  330. tableContainer.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)';
  331. tableContainer.style.zIndex = '10000';
  332. tableContainer.style.width = '300px';
  333. tableContainer.style.maxWidth = '90%';
  334. tableContainer.style.fontFamily = 'Arial, sans-serif';
  335. document.body.appendChild(tableContainer);
  336.  
  337. const tableTitle = document.createElement('h3');
  338. tableTitle.textContent = 'Select Tokens to Delete';
  339. tableTitle.style.margin = '0 0 20px';
  340. tableTitle.style.fontSize = '18px';
  341. tableTitle.style.color = '#333';
  342. tableTitle.style.textAlign = 'center';
  343. tableContainer.appendChild(tableTitle);
  344.  
  345. const form = document.createElement('form');
  346. tableContainer.appendChild(form);
  347.  
  348. tokenSlots.forEach((slot, index) => {
  349. const token = slot.getAttribute('data-token');
  350. if (token) {
  351. const label = document.createElement('label');
  352. label.style.display = 'flex';
  353. label.style.alignItems = 'center';
  354. label.style.marginBottom = '10px';
  355.  
  356. const checkbox = document.createElement('input');
  357. checkbox.type = 'checkbox';
  358. checkbox.name = 'tokens';
  359. checkbox.value = index;
  360. checkbox.style.marginRight = '10px';
  361.  
  362. label.appendChild(checkbox);
  363. label.appendChild(document.createTextNode(`Slot ${index + 1}: ${token.slice(0, 10)}...`));
  364. form.appendChild(label);
  365. }
  366. });
  367.  
  368. const buttonsContainer = document.createElement('div');
  369. buttonsContainer.style.display = 'flex';
  370. buttonsContainer.style.justifyContent = 'space-between';
  371. buttonsContainer.style.marginTop = '20px';
  372. form.appendChild(buttonsContainer);
  373.  
  374. const confirmBtn = document.createElement('button');
  375. confirmBtn.textContent = 'Confirm';
  376. confirmBtn.style.flex = '1';
  377. confirmBtn.style.marginRight = '10px';
  378. confirmBtn.style.padding = '10px 20px';
  379. confirmBtn.style.backgroundColor = '#007bff';
  380. confirmBtn.style.color = '#fff';
  381. confirmBtn.style.border = 'none';
  382. confirmBtn.style.borderRadius = '8px';
  383. confirmBtn.style.cursor = 'pointer';
  384. confirmBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  385. confirmBtn.style.borderRadius = '15px';
  386. confirmBtn.onmouseover = () => {
  387. confirmBtn.style.backgroundColor = '#0056b3';
  388. confirmBtn.style.transform = 'scale(1.05)';
  389. };
  390. confirmBtn.onmouseout = () => {
  391. confirmBtn.style.backgroundColor = '#007bff';
  392. confirmBtn.style.transform = 'scale(1)';
  393. };
  394. buttonsContainer.appendChild(confirmBtn);
  395.  
  396. const cancelBtn = document.createElement('button');
  397. cancelBtn.textContent = 'Cancel';
  398. cancelBtn.style.flex = '1';
  399. cancelBtn.style.marginLeft = '10px';
  400. cancelBtn.style.padding = '10px 20px';
  401. cancelBtn.style.backgroundColor = '#dc3545';
  402. cancelBtn.style.color = '#fff';
  403. cancelBtn.style.border = 'none';
  404. cancelBtn.style.borderRadius = '15px';
  405. cancelBtn.style.cursor = 'pointer';
  406. cancelBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  407. cancelBtn.onmouseover = () => {
  408. cancelBtn.style.backgroundColor = '#c82333';
  409. cancelBtn.style.transform = 'scale(1.05)';
  410. };
  411. cancelBtn.onmouseout = () => {
  412. cancelBtn.style.backgroundColor = '#dc3545';
  413. cancelBtn.style.transform = 'scale(1)';
  414. };
  415. buttonsContainer.appendChild(cancelBtn);
  416.  
  417. confirmBtn.addEventListener('click', (e) => {
  418. e.preventDefault();
  419. const selectedTokens = Array.from(form.tokens).filter(input => input.checked).map(input => parseInt(input.value));
  420. selectedTokens.forEach(index => {
  421. const slot = tokenSlots[index];
  422. slot.removeAttribute('data-token');
  423. slot.textContent = slot.id;
  424. });
  425. activeTokenDisplay.textContent = getTokenFromCookie() || 'No active token';
  426. document.body.removeChild(tableContainer);
  427. });
  428.  
  429. cancelBtn.addEventListener('click', (e) => {
  430. e.preventDefault();
  431. document.body.removeChild(tableContainer);
  432. });
  433. }
  434.  
  435.  
  436. function showNextSection() {
  437. const nextSection = document.createElement('div');
  438. nextSection.style.position = 'fixed';
  439. nextSection.style.top = '20px';
  440. nextSection.style.right = '20px';
  441. nextSection.style.backgroundColor = '#fff';
  442. nextSection.style.padding = '15px';
  443. nextSection.style.border = '1px solid #ddd';
  444. nextSection.style.borderRadius = '12px';
  445. nextSection.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.2)';
  446. nextSection.style.zIndex = '9999';
  447. nextSection.style.width ='350px';
  448. nextSection.style.height = '570px';
  449. nextSection.style.maxWidth = '90%';
  450. nextSection.style.fontFamily = 'Arial, sans-serif';
  451. document.body.appendChild(nextSection);
  452.  
  453.  
  454. const backBtn = document.createElement('button');
  455. backBtn.textContent = 'Back';
  456. backBtn.style.padding = '10px 15px';
  457. backBtn.style.backgroundColor = '#dc3545';
  458. backBtn.style.color = '#fff';
  459. backBtn.style.border = 'none';
  460. backBtn.style.borderRadius = '15px';
  461. backBtn.style.cursor = 'pointer';
  462. backBtn.style.fontSize = '14px';
  463. backBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  464. backBtn.onmouseover = () => {
  465. backBtn.style.backgroundColor = '#c82333';
  466. backBtn.style.transform = 'scale(1.05)';
  467. };
  468. backBtn.onmouseout = () => {
  469. backBtn.style.backgroundColor = '#dc3545';
  470. backBtn.style.transform = 'scale(1)';
  471. };
  472. nextSection.appendChild(backBtn);
  473.  
  474. backBtn.addEventListener('click', () => {
  475. document.body.removeChild(nextSection);
  476. });
  477.  
  478.  
  479. const connectStatus = document.createElement('div');
  480. connectStatus.style.width = '100%';
  481. connectStatus.style.padding = '10px';
  482. connectStatus.style.borderRadius = '15px';
  483. connectStatus.style.textAlign = 'center';
  484. connectStatus.style.marginTop = '10px';
  485. connectStatus.style.fontFamily = 'Arial, sans-serif';
  486. connectStatus.style.display = 'flex';
  487. connectStatus.style.alignItems = 'center';
  488. connectStatus.style.justifyContent = 'center';
  489. connectStatus.style.backgroundColor = '#dc3545';
  490. connectStatus.style.color = '#fff';
  491.  
  492.  
  493. const icon = document.createElement('img');
  494. icon.src = 'https://cdn.discordapp.com/attachments/1267100749679169538/1268055033044402288/Anh_chup_man_hinh_2024-07-25_181612.png?ex=66ab07c7&is=66a9b647&hm=38c654acc72acff7a3756a6f0cb0befc70a0f47e80409fcef715d1b1255a8709&';
  495. icon.style.width = '20px';
  496. icon.style.height = '20px';
  497. icon.style.marginRight = '10px';
  498.  
  499.  
  500. if (window.location.origin === 'https://www.duolingo.com' && !document.cookie.includes('auth_token')) {
  501. connectStatus.style.backgroundColor = '#34c759';
  502. connectStatus.textContent = 'Connected';
  503. connectStatus.insertBefore(icon, connectStatus.firstChild);
  504. } else {
  505. connectStatus.textContent = 'Error';
  506. }
  507.  
  508. nextSection.appendChild(connectStatus);
  509. nextSection.appendChild(disBtn);
  510. nextSection.appendChild(gitBtn);
  511. nextSection.appendChild(donBtn);
  512. nextSection.appendChild(sectionTitle);
  513. nextSection.appendChild(setBtn);
  514. nextSection.appendChild(firstDesc);
  515. nextSection.appendChild(secondDesc);
  516. nextSection.appendChild(thirdDesc);
  517. }
  518.  
  519.  
  520. const disBtn = document.createElement('button');
  521. disBtn.style.padding = '10px 40px';
  522. disBtn.style.marginRight = '10px';
  523. disBtn.style.marginTop = '10px';
  524. disBtn.style.backgroundColor = '#5665ec';
  525. disBtn.style.color = '#fff';
  526. disBtn.style.border = 'none';
  527. disBtn.style.borderRadius = '15px';
  528. disBtn.style.cursor = 'pointer';
  529. disBtn.style.width = '150px';
  530. disBtn.style.fontSize = '16px';
  531. disBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  532. disBtn.onmouseover = () => {
  533. disBtn.style.backgroundColor = '#4a54d1';
  534. disBtn.style.transform = 'scale(1.05)';
  535. };
  536. disBtn.onmouseout = () => {
  537. disBtn.style.backgroundColor = '#5665ec';
  538. disBtn.style.transform = 'scale(1)';
  539. };
  540.  
  541.  
  542.  
  543. disBtn.appendChild(document.createTextNode('Discord'));
  544.  
  545. disBtn.addEventListener('click', () => {
  546. alert('Discord Button clicked');
  547. });
  548.  
  549.  
  550.  
  551. const donBtn = document.createElement('button');
  552. donBtn.textContent = 'Donate';
  553. donBtn.style.padding = '10px 55px';
  554. donBtn.style.marginRight = '-10px';
  555. donBtn.style.marginTop = '10px';
  556. donBtn.style.backgroundImage = 'url(https://raw.githubusercontent.com/baolong7651/DuoAG/main/asset/purple-gradient-background-5472-x-3648-i2xtxsy5ijm2ik4e.jpg?token=GHSAT0AAAAAACVKNSNLHKZIDKXRVF3GOY22ZVUT67Q)';
  557. donBtn.style.backgroundSize = 'cover';
  558. donBtn.style.backgroundPosition = 'center';
  559. donBtn.style.backgroundColor = 'transparent';
  560. donBtn.style.color = '#fff';
  561. donBtn.style.border = 'none';
  562. donBtn.style.borderRadius = '8px';
  563. donBtn.style.cursor = 'pointer';
  564. donBtn.style.fontSize = '16px';
  565. donBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  566. donBtn.onmouseover = () => {
  567. donBtn.style.transform = 'scale(1.05)';
  568. };
  569. donBtn.onmouseout = () => {
  570. donBtn.style.transform = 'scale(1)';
  571. };
  572.  
  573. donBtn.addEventListener('click', () => {
  574. alert('Donate Button clicked buck');
  575. });
  576.  
  577. const gitBtn = document.createElement('button');
  578. gitBtn.textContent = 'Github';
  579. gitBtn.style.padding = '10px 40px';
  580. gitBtn.style.marginRight = '-10px';
  581. gitBtn.style.marginTop = '-20px'
  582. gitBtn.style.backgroundColor = '#050505';
  583. gitBtn.style.color = '#fff'
  584. gitBtn.style.border = 'none';
  585. gitBtn.style.borderRadius = '15px';
  586. gitBtn.style.cursor = 'pointer';
  587. gitBtn.style.fontSize = '16px';
  588. gitBtn.style.width = '150px';
  589. gitBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  590. gitBtn.onmouseover = () => {
  591. gitBtn.style.transform = 'scale(1.05)';
  592. };
  593. gitBtn.onmouseout = () => {
  594. gitBtn.style.transform = 'scale(1)';
  595. };
  596. gitBtn.addEventListener('click', () => {
  597. alert('Github Button clicked');
  598. });
  599.  
  600.  
  601. const setBtn = document.createElement('button');
  602. setBtn.textContent = 'Setting';
  603. setBtn.style.padding = '10px 40px';
  604. setBtn.style.marginLeft = '170px';
  605. setBtn.style.marginTop = '106px';
  606. setBtn.style.backgroundColor = '#808080';
  607. setBtn.style.color = '#fff'
  608. setBtn.style.border = 'none';
  609. setBtn.style.borderRadius = '15px';
  610. setBtn.style.width = '150px';
  611. setBtn.style.cursor = 'pointer';
  612. setBtn.style.fontSize = '16px';
  613. setBtn.style.transition = 'background-color 0.3s, transform 0.3s';
  614. setBtn.onmouseover = () => {
  615. setBtn.style.transform = 'scale(1.05)';
  616. };
  617. setBtn.onmouseout = () => {
  618. setBtn.style.transform = 'scale(1)';
  619. };
  620.  
  621. setBtn.addEventListener('click', () => {
  622. alert('Setting Button clicked');
  623. });
  624.  
  625. const sectionTitle = document.createElement('h3');
  626. sectionTitle.textContent = 'More Features';
  627. sectionTitle.style.margin = '0 0 10px';
  628. sectionTitle.style.marginRight = '-10px';
  629. sectionTitle.style.marginTop = '-175px'
  630. sectionTitle.style.fontSize = '20px';
  631. sectionTitle.style.color = '#333';
  632. sectionTitle.style.textAlign = 'center';
  633.  
  634. const firstDesc = document.createElement('p');
  635. firstDesc.textContent = 'MIT License Copyright (c) 2024 Interstellar, NowaysZ'
  636. firstDesc.style.margin = '0';
  637. firstDesc.style.marginTop = '20px'
  638. firstDesc.style.fontSize = '14px';
  639. firstDesc.style.color = '#080808';
  640. firstDesc.style.textAlign = 'center';
  641. firstDesc.style.fontFamily = 'Arial, San-Serif';
  642.  
  643. const secondDesc = document.createElement('p');
  644. secondDesc.textContent = 'Permission is granted to use, copy, modify, and distribute the Software, subject to the following conditions:';
  645. secondDesc.style.margin = 'px';
  646. secondDesc.style.marginTop = '25px'
  647. secondDesc.style.fontSize = '14px';
  648. secondDesc.style.color = '#080808';
  649. secondDesc.style.textAlign = 'center';
  650. secondDesc.style.fontFamily = 'Arial, San-Serif';
  651.  
  652. const thirdDesc = document.createElement('p');
  653. 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';
  654. thirdDesc.style.margin = '0';
  655. thirdDesc.style.marginTop = '30px'
  656. thirdDesc.style.fontSize = '14px';
  657. thirdDesc.style.color = '#080808';
  658. thirdDesc.style.textAlign = 'center';
  659. thirdDesc.style.fontFamily = 'Arial, San-Serif';
  660.  
  661.  
  662. nextBtn.addEventListener('click', () => {
  663. showNextSection();
  664. });
  665.  
  666.  
  667. activeTokenDisplay.textContent = getTokenFromCookie() || 'No active token'
  668.  
  669.  
  670.  
  671. })();