Deepl No Limit

Unlimited DeepL Translation

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Deepl No Limit
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Unlimited DeepL Translation
// @author       null
// @match        https://*.deepl.com/translator
// @match        https://*.deepl.com/*/translator
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Intercept network requests
    const originalFetch = window.fetch;
    window.fetch = async function(url, options) {
        // Check if the request is the one we need to intercept
        if (url.startsWith('https://w.deepl.com/web') && options && options.method === 'post') {
            // Perform the original fetch request
            const response = await originalFetch(url, options);

            // Clone the response so we can manipulate it
            const clonedResponse = response.clone();
            const jsonResponse = await clonedResponse.json();

            // Modify the JSON response
            if (jsonResponse.result && jsonResponse.result.proAvailable) {
                jsonResponse.result.proAvailable = false;
            }

            // Create a new response with the modified JSON
            const modifiedResponse = new Response(JSON.stringify(jsonResponse), {
                status: clonedResponse.status,
                statusText: clonedResponse.statusText,
                headers: clonedResponse.headers,
            });

            // Return the modified response
            return modifiedResponse;
        }

        // If it's not the URL we want to intercept, proceed as normal
        return originalFetch(url, options);
    };
})();