Render-State Instant Resolver

use https://greasyfork.org/en/scripts/439469-adlbypasser-v1-6-ouo-io-uii-io-exe-io-bc-vc-adf-ly-more-no-ads/post-install with this.

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name        Render-State Instant Resolver
// @namespace   Violentmonkey Scripts
// @icon        https://render-state.to/wp-content/uploads/2020/09/cropped-favicon-290x290.png
// @version     1.0.1
//
// @match       https://render-state.to/download/*
// @grant       none
// @license     MIT
//
// @author      Schaken
// @description use https://greasyfork.org/en/scripts/439469-adlbypasser-v1-6-ouo-io-uii-io-exe-io-bc-vc-adf-ly-more-no-ads/post-install with this.
// ==/UserScript==


(function() {
    'use strict';

    const RESOLVE_PATTERN = /url-masker-pro\/v1\/resolve\//;

    // --- Intercept fetch() ---
    const origFetch = window.fetch;
    window.fetch = function(...args) {
        const url = args[0];
        if (typeof url === "string" && RESOLVE_PATTERN.test(url)) {
            console.log("Intercepted resolve fetch:", url);
            return origFetch(...args).then(async resp => {
                try {
                    const clone = resp.clone();
                    const data = await clone.json();
                    console.log("Resolve response:", data);
                    if (data && data.url) {
                        window.location.href = data.url;
                    }
                } catch (e) {
                    console.error("Fetch intercept error:", e);
                }
                return resp;
            });
        }
        return origFetch(...args);
    };

    // --- Intercept XMLHttpRequest ---
    const origOpen = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function(method, url, ...rest) {
        this._isResolve = RESOLVE_PATTERN.test(url);
        return origOpen.call(this, method, url, ...rest);
    };

    const origSend = XMLHttpRequest.prototype.send;
    XMLHttpRequest.prototype.send = function(...args) {
        if (this._isResolve) {
            this.addEventListener("load", function() {
                try {
                    const data = JSON.parse(this.responseText);
                    console.log("XHR resolve response:", data);
                    if (data && data.url) {
                        window.location.href = data.url;
                    }
                } catch (e) {
                    console.error("XHR intercept error:", e);
                }
            });
        }
        return origSend.apply(this, args);
    };
})();