GauthMath Premium Unlocker

Unlock premium features on GauthMath with this userscript. Enter your premium key to access exclusive content and solutions.

  1. // ==UserScript==
  2. // @name GauthMath Premium Unlocker
  3. // @namespace github.com/longkidkoolstar
  4. // @version 1.0.1
  5. // @description Unlock premium features on GauthMath with this userscript. Enter your premium key to access exclusive content and solutions.
  6. // @author longkidkoolstar
  7. // @match https://www.gauthmath.com/*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=gauthmath.com
  9. // @license MIT
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. console.log('GauthMath notification system loaded!');
  14.  
  15. const targetSelector = "#__next > div.Layout_main-wrap__KzRPxo > main > div > div.Solution_solutionContainer__o8AMps > div.Solution_solutionMain__SYCF2Q > div.PCAnswerResult_answer-result__gCp2gu > div > div.Tabs_tabs-panel-wrap__EP9hZn > div:nth-child(1) > div > div > div > div.PCSolutionMask_Mask__aiEpdC > div";
  16.  
  17. // Create custom notification system
  18. const createNotification = (message, duration = 5000) => {
  19. const notification = document.createElement('div');
  20. notification.style.cssText = `
  21. position: fixed;
  22. bottom: 20px;
  23. right: 20px;
  24. background: rgba(0, 0, 0, 0.8);
  25. color: white;
  26. padding: 15px 20px;
  27. border-radius: 5px;
  28. z-index: 1000;
  29. transition: opacity 0.3s;
  30. max-width: 300px;
  31. box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  32. `;
  33. notification.innerHTML = message;
  34.  
  35. // Style all links in notifications
  36. const links = notification.getElementsByTagName('a');
  37. for (let link of links) {
  38. link.style.cssText = `
  39. color: #00ff00;
  40. text-decoration: underline;
  41. cursor: pointer;
  42. `;
  43. }
  44.  
  45. document.body.appendChild(notification);
  46.  
  47. // Fade out and remove
  48. setTimeout(() => {
  49. notification.style.opacity = '0';
  50. setTimeout(() => notification.remove(), 300);
  51. }, duration);
  52.  
  53. return notification;
  54. };
  55.  
  56. // Create custom input dialog
  57. const createInputDialog = () => {
  58. const overlay = document.createElement('div');
  59. overlay.style.cssText = `
  60. position: fixed;
  61. top: 0;
  62. left: 0;
  63. width: 100%;
  64. height: 100%;
  65. background: rgba(0, 0, 0, 0.5);
  66. display: flex;
  67. justify-content: center;
  68. align-items: center;
  69. z-index: 1001;
  70. `;
  71.  
  72. const dialog = document.createElement('div');
  73. dialog.style.cssText = `
  74. background: white;
  75. padding: 20px;
  76. border-radius: 8px;
  77. box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  78. max-width: 400px;
  79. width: 90%;
  80. `;
  81.  
  82. const input = document.createElement('input');
  83. input.type = 'text';
  84. input.placeholder = 'Enter your premium key';
  85. input.style.cssText = `
  86. width: 100%;
  87. padding: 8px;
  88. margin: 10px 0;
  89. border: 1px solid #ddd;
  90. border-radius: 4px;
  91. `;
  92.  
  93. const buttonContainer = document.createElement('div');
  94. buttonContainer.style.cssText = `
  95. display: flex;
  96. justify-content: flex-end;
  97. gap: 10px;
  98. margin-top: 15px;
  99. `;
  100.  
  101. const submitButton = document.createElement('button');
  102. submitButton.textContent = 'Submit';
  103. submitButton.style.cssText = `
  104. padding: 8px 16px;
  105. background: #007bff;
  106. color: white;
  107. border: none;
  108. border-radius: 4px;
  109. cursor: pointer;
  110. `;
  111.  
  112. const cancelButton = document.createElement('button');
  113. cancelButton.textContent = 'Cancel';
  114. cancelButton.style.cssText = `
  115. padding: 8px 16px;
  116. background: #6c757d;
  117. color: white;
  118. border: none;
  119. border-radius: 4px;
  120. cursor: pointer;
  121. `;
  122.  
  123. buttonContainer.appendChild(cancelButton);
  124. buttonContainer.appendChild(submitButton);
  125. dialog.appendChild(input);
  126. dialog.appendChild(buttonContainer);
  127. overlay.appendChild(dialog);
  128.  
  129. return new Promise((resolve) => {
  130. submitButton.onclick = () => {
  131. overlay.remove();
  132. resolve(input.value);
  133. };
  134. cancelButton.onclick = () => {
  135. overlay.remove();
  136. resolve(null);
  137. };
  138. document.body.appendChild(overlay);
  139. input.focus();
  140. });
  141. };
  142.  
  143. const getKey = async () => {
  144. const key = await createInputDialog();
  145. if (key) {
  146. validateKey(key);
  147. } else {
  148. createNotification('No key entered. Please try again.');
  149. setTimeout(getKey, 1000);
  150. }
  151. };
  152.  
  153. const validateKey = (key) => {
  154. setTimeout(() => {
  155. createNotification('Invalid key. Please visit our Discord server: <a href="https://discord.gg/JrweGzdjwA" target="_blank">discord.gg/JrweGzdjwA</a> to purchase a valid key.', 7000);
  156. }, 1000);
  157. };
  158.  
  159. const observeElement = () => {
  160. new MutationObserver((mutationsList, observer) => {
  161. for(let mutation of mutationsList) {
  162. if (mutation.type === 'childList') {
  163. const target = document.querySelector(targetSelector);
  164. if (target) {
  165. createNotification('Get GauthMath Plus! Join our Discord server: <a href="https://discord.gg/JrweGzdjwA" target="_blank">discord.gg/JrweGzdjwA</a>');
  166. observer.disconnect();
  167. }
  168. }
  169. }
  170. }).observe(document.body, { childList: true, subtree: true });
  171. };
  172.  
  173. // Initialize
  174. getKey();
  175. observeElement();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址