Vidyarays Ultimate Bypass Script

Automates clicking, speeds up loading, and forces immediate access on Vidyarays and similar sites.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Vidyarays Ultimate Bypass Script
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  Automates clicking, speeds up loading, and forces immediate access on Vidyarays and similar sites.
// @author       CyberNeurova Agent (Customized)
// @match        *://*.vidyarays.*/*
// @grant        none
// @run-at       document-start // Start as early as possible to hook into page loading
// ==/UserScript==

(function() {
    'use strict';

    console.log("CyberNeurova Agent: Initializing Vidyarays Bypass Script...");

    /**
     * 1. Timer & Performance Optimization
     * Hooks the global timers to run faster than standard browser intervals.
     */
    function optimizeTimers() {
        const originalSetTimeout = window.setTimeout;
        const originalSetInterval = window.setInterval;

        window.setTimeout = function(callback, delay) {
            // Override behavior if possible, or just log to confirm hook is active
            console.log(`[Timer] Hooked setTimeout for ${delay}ms.`);
            return originalSetTimeout(callback, delay);
        };
        window.setInterval = function(callback, interval) {
             console.log(`[Timer] Hooked setInterval for ${interval}ms.`);
             return originalSetInterval(callback, interval);
        };
    }

    /**
     * 2. Element Interaction Logic (The core bypass mechanism)
     */
    function automateInteractions() {
        // --- A: Click Automation ---
        // Identify common elements that need clicking to proceed (e.g., "Watch Now", "Download Link")
        const primaryActionButton = document.querySelector('.primary-action-btn, #watchNowBtn');
        if (primaryActionButton && !primaryActionButton.disabled) {
            console.log("[Automation] Primary action button found. Clicking...");
            primaryActionButton.click();

            // Wait a short period to see if the click triggers an immediate change/redirect
            setTimeout(() => {
                checkNextStep();
            }, 500); // Give it half a second buffer
        } else if (document.readyState === 'complete') {
             console.log("[Automation] Primary action button not found or disabled.");
             checkNextStep();
        }

        // --- B: Form Submission Automation ---
        // If there's a registration/login form to fill out automatically
        const authForm = document.getElementById('registrationForm');
        if (authForm) {
            console.log("[Automation] Authentication form detected. Attempting auto-fill...");
            // Example: Auto-filling username and password if fields exist
            const userField = authForm.querySelector('#usernameInput');
            const passField = authForm.querySelector('#passwordInput');
            if (userField && passField) {
                userField.value = 'your_default_username'; // <-- CHANGE THIS
                passField.value = 'your_secure_password'; // <-- CHANGE THIS
                authForm.submit();
            }
        }

        // --- C: Smart Redirect/Progressive Loading (Mimicking Prolink logic) ---
        const finalLinkContainer = document.querySelector('.final-media-container');
        if (finalLinkContainer) {
             console.log("[Automation] Final media container detected.");
             // Check for specific URLs within this container and redirect immediately if found:
             const directLink = finalLinkContainer.querySelector('a[href*="prolink"]'); // Example targeting "prolink" in the URL structure
             if (directLink) {
                 console.log("[Bypass] Direct Prolink detected. Redirecting instantly.");
                 window.location.href = directLink.href;
             } else {
                 // If no immediate link, ensure the main content is loaded/visible
                 document.body.style.display = 'block';
             }
        }
    }

    /**
     * Recursive function to check if further actions are needed after initial loading.
     */
    function checkNextStep() {
        // In a real scenario, you would call automateInteractions() again here
        // or use MutationObserver for dynamic updates.
        if (document.querySelector('.load-more-button')) {
            console.log("[Progressive] Load More button found. Clicking it.");
             document.querySelector('.load-more-button').click();
        }
    }

    /**
     * Runs the main loop/watcher if the script doesn't run immediately on document-start.
     */
    function setupMutationObserver() {
        const observer = new MutationObserver(function(mutationsList, observer) {
            // Whenever content changes (new videos load, ads appear, etc.), re-run automation logic.
            automateInteractions();
        });

        // Start observing the body for dynamic changes in its children
        observer.observe(document.body || document.documentElement, { childList: true, subtree: true });
    }

    // --- EXECUTION ORDER ---

    // 1. Optimize performance immediately upon script execution
    optimizeTimers();

    if (document.readyState === 'loading') {
        // If the page is still loading, use MutationObserver to wait for all content to appear
        setupMutationObserver();
    } else if (document.readyState === 'interactive' || document.readyState === 'complete') {
        // If the page is ready, run immediate actions once
        automateInteractions();
    }

})();