Greasy Fork 支持简体中文。

萌娘百科重定向旧版主页

自动重定向到旧版主页,mzh域名自动重定向zh域名

// ==UserScript==
// @name         萌娘百科重定向旧版主页
// @namespace    https://greasyfork.org/zh-CN/scripts/505374
// @supportURL   https://greasyfork.org/zh-CN/scripts/505374
// @version      2.1
// @description  自动重定向到旧版主页,mzh域名自动重定向zh域名
// @author       OctoberSama&ChatGPT
// @license      AGPL
// @match        zh.moegirl.org.cn/*
// @match        mzh.moegirl.org.cn/*
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

(function () {

// 从 Tampermonkey 存储中获取用户之前的选择状态,默认值为 true(启用重定向)
let redirectEnabled = GM_getValue("redirectEnabled", true);

// 注册菜单项时的 ID(作为唯一标识)
const menuCommandId = "redirect-toggle";

// 更新菜单项的状态和注册
function updateMenuCommand() {
    // 使用相同的 ID 注销之前的菜单项
    GM_unregisterMenuCommand(menuCommandId);

    // 注册新的菜单项
    GM_registerMenuCommand(
        (redirectEnabled ? "✅" : "❌") + "重定向mzh.moegirl.org.cn",
        function() {
            // 提示用户会刷新页面,确认是否继续
            if (confirm("❗️❗️❗️继续操作将会导致网页刷新 强烈建议不要在编辑中使用该功能\n如有未保存的内容 请点击“取消” 是否继续?")) {
                // 切换状态
                redirectEnabled = !redirectEnabled;
                GM_setValue("redirectEnabled", redirectEnabled);

                // 更新菜单项状态并刷新页面
                updateMenuCommand();

                // 提示用户状态已更改
                alert("mzh.moegirl.org.cn 重定向已" + (redirectEnabled ? "启用" : "禁用"));

                // 刷新页面以确保菜单项更新
                window.location.reload();
            } else {
                // 用户选择取消,不进行任何操作
                alert("操作已取消,未进行更改。");
            }
        },
        menuCommandId
    );
}

// 初始化菜单项
updateMenuCommand();

function replace_url(url) {
    if (url.includes('moegirl.org.cn')) {
        url = url.replace(/Mainpage#\/(flow|topics)/, 'Mainpage#/legacy')
                 .replace(/^moegirl.org.cn\/Mainpage$/, 'moegirl.org.cn/Mainpage#/legacy');

        // 根据用户选择是否执行 mzh.moegirl.org.cn 重定向
        if (redirectEnabled) {
            url = url.replace('mzh.moegirl.org.cn', 'zh.moegirl.org.cn');
        }
    }
    console.log(url);
    return url;
}

function checkAndReplaceUrl() {
    var url = window.location.href;
    var newUrl = replace_url(url);
    if (url !== newUrl) {
        window.location.href = newUrl;
    }
}

// 初次加载时检查并替换 URL
checkAndReplaceUrl();

// 监听 hashchange 事件,当 URL 的 hash 部分发生变化时再次检查并替换 URL
window.addEventListener('hashchange', checkAndReplaceUrl);







function removeFuckingTab() {
    var fuckingtab = document.querySelector("#home-layout-toggler");
    if (fuckingtab) {
        fuckingtab.remove();
        return; // 如果元素已经存在并被删除,直接退出函数
    }

    // 使用 MutationObserver 监听 DOM 变化
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.addedNodes.length > 0) {
                var fuckingtab = document.querySelector("#home-layout-toggler");
                if (fuckingtab) {
                    fuckingtab.remove();
                    observer.disconnect(); // 删除元素后,停止观察
                }
            }
        });
    });

    // 开始监听文档的根节点,观察子节点的变化
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
}

// 初次调用,检查并删除元素
removeFuckingTab();


})();