🏠 Home 

萌娘百科重定向旧版主页

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


Install this script?
// ==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 remove####ingTab() {
var ####ingtab = document.querySelector("#home-layout-toggler");
if (####ingtab) {
####ingtab.remove();
return; // 如果元素已经存在并被删除,直接退出函数
}
// 使用 MutationObserver 监听 DOM 变化
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.addedNodes.length > 0) {
var ####ingtab = document.querySelector("#home-layout-toggler");
if (####ingtab) {
####ingtab.remove();
observer.disconnect(); // 删除元素后,停止观察
}
}
});
});
// 开始监听文档的根节点,观察子节点的变化
observer.observe(document.body, {
childList: true,
subtree: true
});
}
// 初次调用,检查并删除元素
remove####ingTab();
})();