推し旅新干线验证(mujica)

如题

// ==UserScript==
// @name         推し旅新干线验证(mujica)
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  如题
// @match        *://oshi-tabi.voistock.com/ave-mujica/*
// @grant        GM_xmlhttpRequest
// @run-at       document-start
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    function removeOriginalScript() {
        const scripts = document.getElementsByTagName('script');
        for (let script of scripts) {
            if (script.src && script.src.indexOf("geolocationV2.js") !== -1) {
                script.parentNode.removeChild(script);
                break;
            }
        }
    }

    const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
            mutation.addedNodes.forEach((node) => {
                if (node.tagName === 'SCRIPT' && node.src && node.src.indexOf("geolocationV2.js") !== -1) {
                    node.remove();
                }
            });
        });
    });
    observer.observe(document.documentElement, { childList: true, subtree: true });

    removeOriginalScript();

    GM_xmlhttpRequest({
        method: "GET",
        url: "https://oshi-tabi.voistock.com/view/event/ave-mujica/voice/js/geolocationV2.js",
        onload: function(response) {
            if (response.status === 200) {
                let code = response.responseText;

                // 1. 替换 var direction;
                code = code.replace(/var\s+direction\s*;/g, "var direction = 'towards';");
                // 2. 替换 Checkspeed 函数中 var flag=false;
                code = code.replace(/var\s+flag\s*=\s*false\s*;/g, "var flag = true;");
                // 3. 替换 var inarea=false;
                code = code.replace(/var\s+inArea\s*=\s*false\s*;/g, "var inArea = true;");

                const script = document.createElement('script');
                script.textContent = code;
                document.head.appendChild(script);
            } else {
                console.error("获取 geolocationV2.js 失败,状态码:" + response.status);
            }
        },
        onerror: function(error) {
            console.error("GM_xmlhttpRequest 请求出错:", error);
        }
    });
})();