JVC Cloudflare Bypass

Propose d'activer 1.1.1.1 sur jeuxvideo.com pour éviter les captchas

目前為 2025-02-09 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         JVC Cloudflare Bypass
// @namespace    https://jeuxvideo.com/
// @version      1.8
// @description  Propose d'activer 1.1.1.1 sur jeuxvideo.com pour éviter les captchas
// @author       HulkDu92
// @match        *://www.jeuxvideo.com/*
// @grant        GM_xmlhttpRequest
// @connect      cloudflare.com
// @run-at       document-end
// @license      MIT
// @icon         https://image.noelshack.com/fichiers/2025/06/5/1738891409-68747470733a2f2f74616d6e762e696d6769782e6e65742f63665f6279706173735f6c6f676f2e706e67.png
// ==/UserScript==

(function() {
    'use strict';

    const WARP_STATUS_KEY = "jvcWarpStatus";
    const CLOUDFLARE_TRACE_URL = "https://cloudflare.com/cdn-cgi/trace";
    const WARP_BUTTON_URL = "https://1.1.1.1/fr-FR/";

    /**
     * Vérifie si Warp est activé et stocke le résultat dans sessionStorage.
     * Affiche le bouton si Warp est désactivé.
     */
    function checkWarpStatus() {
        const storedStatus = sessionStorage.getItem(WARP_STATUS_KEY);
        if (storedStatus !== null) {
            if (storedStatus === "false") showButton();
            return;
        }

        GM_xmlhttpRequest({
            method: "GET",
            url: CLOUDFLARE_TRACE_URL,
            onload: response => {
                const warpActive = response.responseText.includes("warp=on");
                sessionStorage.setItem(WARP_STATUS_KEY, warpActive.toString());
                if (!warpActive) showButton();
            }
        });
    }

    /**
     * Crée et affiche le bouton permettant d’activer Warp.
     */
    function showButton() {
        const button = createButton();

        // Tente d'insérer le bouton dans l'en-tête utilisateur
        const targetElement = document.querySelector('.header__globalUser');
        if (targetElement) {
            targetElement.insertBefore(button, targetElement.firstChild);
        } else {
            // Si l'élément cible est introuvable, afficher le bouton en position fixe
            console.warn("Element cible non trouvé, affichage en position fixed.");
            Object.assign(button.style, {
                position: "fixed",
                bottom: "20px",
                right: "20px",
                zIndex: "9999"
            });
            document.body.appendChild(button);
        }
    }


    /**
     * Crée un bouton avec une icône SVG et un lien vers 1.1.1.1.
     * @returns {HTMLElement} Le bouton créé.
     */
    function createButton() {
        const button = document.createElement("button");
        button.type = "button";
        button.className = "btn btn-repondre-msg";// "header__navLink--lvl1";
        button.title = "Bloquer Captcha 🛇";
        button.textContent = "Bloquer Captcha";

        button.onclick = openCloudflareApp;
        return button;
    }

    /**
     * Ouvre un lien vers 1.1.1.1 pour son installation
     */
    function openCloudflareApp() {
      window.open(WARP_BUTTON_URL, "_blank");
      sessionStorage.removeItem(WARP_STATUS_KEY);
      alert(
          "Le blocage complet des Captchas est possible grâce à l'application officielle de Cloudflare.\n\n" +
          "Cette application agit comme un pass VIP pour Cloudflare et empêche tous les captchas sur JVC.\n\n" +
          "Il est recommandé de l'activer uniquement pour JVC.\n\n" +
          "C'est une solution radicale (en espérant qu'elle soit temporaire :hap:) pour éviter les captchas abusifs."
      );
    }

    checkWarpStatus();
})();