Greasy Fork

Greasy Fork is available in English.

MoegirlRecover 萌百恢复屏蔽词

在萌娘百科将屏蔽词恢复原状

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         MoegirlRecover 萌百恢复屏蔽词
// @namespace    https://minecreeper.top/
// @version      0.3.1
// @description  在萌娘百科将屏蔽词恢复原状
// @author       MineCreeper-矿井小帕
// @match        *://zh.moegirl.org.cn/*
// @match        *://mzh.moegirl.org.cn/*
// @grant        none
// @run-at       document-end
// @license      GPLv3
// ==/UserScript==

(function() {
    var pgtitle = decodeURIComponent(location.pathname.substr(1)) //获取页面路径
    //if(pgtitle=="index.php"){
        //TODO: index.php获取标题
    //}
    console.log("页面标题|"+pgtitle);
    document.getElementById("firstHeading").innerText = pgtitle;
    const Http = new XMLHttpRequest();
    const url='https://zh.moegirl.org.cn/api.php?action=parse&page='+encodeURIComponent(pgtitle)+'&prop=wikitext&formatversion=2&format=json';
    Http.open("GET", url);
    if(document.getElementById("mw-content-text").innerHTML.indexOf("♯")!=-1&&pgtitle.indexOf("Category:")!=0) Http.send();
    else if(pgtitle.indexOf("Category:")==0){ //处理分类
        var lnks = document.getElementById("mw-pages").getElementsByClassName("mw-content-ltr")[0].getElementsByTagName("a");
        console.log(lnks)
        for (let i in lnks) {
            console.log()
            if(lnks[i].innerHTML.indexOf("♯")!=-1) lnks[i].innerHTML = decodeURIComponent(lnks[i].getAttribute("href").substr(1).replace("_"," "));
        }
    }
    Http.titlearg = pgtitle;
    Http.onreadystatechange = (e) => {
        var obj = JSON.parse(Http.responseText).parse.wikitext
        console.log(obj)
        obj = obj.replaceAll(/\[\[([^|\]]*)\]\]/g,"[[$1|$1]]")
        obj = obj.replaceAll("|[","|[[")
        obj = obj.replaceAll(/\|([^\|\=\]]*)\=/g,"|[$1|=") //基本信息例外
        obj = obj.replaceAll(/\[\[File\:([^\|\]]*)\|([^\|\]]*)\|([^\|\]]*)\|([^\|\]]*)\]\]/g,"[[File:$1|[$2|[$3|$4]]") //文件例外
        console.log(obj)
        var proctxt = ""
        var allow = true;
        for (let i in obj) {
            proctxt += obj[i]
            if(obj[i]=="[") allow = false;
            if(obj[i]=="{") allow = false;
            if(obj[i]=="|") allow = true;
            if(obj[i]=="}") allow = true;
            if(new RegExp("[\\u4E00-\\u9FFF]+", "g").test(obj[i]) && allow) proctxt += "蒽"
        }
        proctxt = proctxt.replaceAll("|[","|")
        proctxt = proctxt.replaceAll("|=","=")
        console.log(proctxt)
        const url2='https://zh.moegirl.org.cn/api.php?action=parse&format=json&prop=text&formatversion=2';
        if(proctxt!=undefined){
            const Http2 = new XMLHttpRequest();
            Http2.open("POST", url2);
            Http2.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
            Http2.send('text='+encodeURIComponent(proctxt));
            Http2.onreadystatechange = (e) => {
                var htm = JSON.parse(Http2.responseText).parse.text.replaceAll("蒽","")
                document.getElementById("mw-content-text").innerHTML = htm
            }
        }
    }
})();