Advertisement
Nolifeq

Untitled

Dec 28th, 2024 (edited)
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.90 KB | None | 0 0
  1. // ==UserScript==
  2. // @name         [ꜱɪ] ꜱᴋᴀʟᴏᴡᴀɴɪᴇ ᴄᴀᴘᴛᴄʜᴀ
  3. // @version      1.1
  4. // @description  Skaluje okno CAPTCHA do wielkości okna
  5. // @author       Nolifequ
  6. // @icon         https://i.ibb.co/txqmHDz/google-recaptcha-logo-icon-170062.png
  7. // @match        https://fobos.margonem.pl/
  8. // ==/UserScript==
  9.  
  10. (function () {
  11.     'use strict';
  12.  
  13.     let monitoringInterval;
  14.  
  15.     function scaleCaptchaToFitWindow(captchaElement) {
  16.         if (captchaElement) {
  17.             const rect = captchaElement.getBoundingClientRect();
  18.             const windowWidth = window.innerWidth;
  19.             const windowHeight = window.innerHeight;
  20.  
  21.             const scaleWidth = windowWidth / rect.width;
  22.             const scaleHeight = windowHeight / rect.height;
  23.             const scale = Math.min(scaleWidth, scaleHeight);
  24.  
  25.             captchaElement.style.transform = `scale(${scale})`;
  26.             captchaElement.style.transformOrigin = 'top left';
  27.             captchaElement.style.position = 'absolute';
  28.             captchaElement.style.top = '0';
  29.             captchaElement.style.left = '0';
  30.             captchaElement.style.zIndex = '9999';
  31.  
  32.             console.log(`CAPTCHA przeskalowana: scale(${scale})`);
  33.         }
  34.     }
  35.  
  36.     function monitorCaptcha() {
  37.         const captchaElement = document.getElementById('captcha');
  38.         if (captchaElement) {
  39.             const rect = captchaElement.getBoundingClientRect();
  40.             if (rect.width > 0 && rect.height > 0) {
  41.                 console.log('CAPTCHA wykryta i gotowa do skalowania.');
  42.                 scaleCaptchaToFitWindow(captchaElement);
  43.  
  44.                 clearInterval(monitoringInterval);
  45.                 monitoringInterval = null;
  46.                 return;
  47.             }
  48.         }
  49.         console.log('CAPTCHA jeszcze niegotowa, kontynuuję monitorowanie.');
  50.     }
  51.  
  52.     function startMonitoring() {
  53.         if (!monitoringInterval) {
  54.             monitoringInterval = setInterval(monitorCaptcha, 100);
  55.         }
  56.     }
  57.  
  58.     const observer = new MutationObserver((mutations) => {
  59.         mutations.forEach((mutation) => {
  60.             mutation.addedNodes.forEach((node) => {
  61.                 if (node.id === 'captcha') {
  62.                     console.log('CAPTCHA została dodana do DOM.');
  63.                     startMonitoring();
  64.                 }
  65.             });
  66.         });
  67.     });
  68.  
  69.     observer.observe(document.body, {
  70.         childList: true,
  71.         subtree: true,
  72.     });
  73.  
  74.     window.addEventListener('resize', () => {
  75.         const captchaElement = document.getElementById('captcha');
  76.         if (captchaElement) {
  77.             startMonitoring();
  78.         }
  79.     });
  80.  
  81.     setTimeout(() => {
  82.         const captchaElement = document.getElementById('captcha');
  83.         if (captchaElement) {
  84.             console.log('Rezerwowe wykrycie CAPTCHA.');
  85.             startMonitoring();
  86.         }
  87.     }, 100);
  88. })();
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement