Greasy Fork

Greasy Fork is available in English.

巴哈姆特-場外休憩區--隱藏廢文

作者:hbl91707(異音)

当前为 2016-06-23 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name        巴哈姆特-場外休憩區--隱藏廢文
// @namespace   hbl917070
// @include     http://forum.gamer.com.tw/C.php?bsn=60076*
// @include     http://forum.gamer.com.tw/C.php?page=*&bsn=60076*
// @version     1.2
// @grant       none
// @description 作者:hbl91707(異音)
// @description:zh-tw 作者:hbl91707(異音)
// ==/UserScript==


//小於等於 ? 個字就隱藏回文
var int_回文小於特定長度 = 2;
var int_留言小於特定長度 = 0;

//設定特定的文字不顯示,留言與回文都會受影響
var s_要被過濾的文字 = ["私", "私私", "禾厶", "ㄙ", "ㄙㄙ", "斯",
                        "戰歌", "戰哥", "單戈哥欠", "泰瑞",
                        "卡", "car", "CAR",
                        "推"];




var int_留言 = 0;
var int_回文 = 0;


//隱藏回文
var obj_1 = document.getElementsByClassName("FM-cbox1");
for (var i = 0; i < obj_1.length; i++) {

    try {
        var obj_展開留言 = obj_1[i].getElementsByClassName("FM-cbox10D")[0].getElementsByTagName("a")[0];
        obj_展開留言.onclick = fun_隱藏留言;
    } catch (e) { }


    var s = obj_1[i].getElementsByClassName("FM-cbox7")[0].innerText.replace(/ /g, "").replace(/\r/g, "").replace(/\n/g, "");

    if (obj_1[i].getElementsByClassName("FM-cbox7")[0].getElementsByTagName("img")[0] === undefined)
        if (obj_1[i].getElementsByClassName("FM-cbox7")[0].getElementsByTagName("iframe")[0] === undefined)
            if (s.length <= int_回文小於特定長度) {
                fun_隱藏物件(obj_1[i], "回文");
                continue;
            }

    for (var j = 0; j < s_要被過濾的文字.length; j++) {
        if (s == s_要被過濾的文字[j]) {
            fun_隱藏物件(obj_1[i], "回文");
            break;
        }
    }

}


fun_隱藏留言();



function fun_隱藏留言() {

    setTimeout(function () {

        var obj_1 = document.getElementsByClassName("FM-cbox10A");
        for (var i = 0; i < obj_1.length; i++) {

            //取得留言內容
            var s = obj_1[i].innerText;
            var len2 = obj_1[i].getElementsByTagName("a")[0].innerText.length;//扣掉名字
            var len3 = obj_1[i].getElementsByTagName("span")[0].innerText.length;//扣掉時間
            var len_but = (obj_1[i].getElementsByTagName("button").length == 1) ? 4 : 6;//扣掉按鈕

            s = s.substring(len2 + len_but, s.length - len3).replace(/ /g, "").replace(/\r/g, "").replace(/\n/g, "");

            if (s.length <= int_留言小於特定長度) {
                fun_隱藏物件(obj_1[i], "留言");
                continue;
            }

            for (var j = 0; j < s_要被過濾的文字.length; j++) {
                if (s == s_要被過濾的文字[j]) {
                    fun_隱藏物件(obj_1[i], "留言");
                    break;
                }
            }

        }//for

        fun_更新按鈕();

    }, 2000);
}






function fun_隱藏物件(obj, ss) {
    if (obj.style.display != "none") {

        obj.style.display = "none";
        obj.style.background = "rgba(150,0,0,0.3)";

        if (ss == "留言") {
            int_留言++;
        } else {
            int_回文++;
        }
    }
}


function fun_更新按鈕() {

    if (int_留言 === 0 && int_回文 === 0) {
        document.getElementById("but_view").innerHTML = "";
    } else if (int_回文 === 0) {
        document.getElementById("but_view").innerHTML = "顯示:留言" + int_留言;
    } else if (int_留言 === 0) {
        document.getElementById("but_view").innerHTML = "顯示:回文" + int_回文;
    } else {
        document.getElementById("but_view").innerHTML = "顯示:留言" + int_留言 + "、回文" + int_回文;
    }

}




var bu = document.createElement("div");
bu.id = "but_view";
bu.onclick = fun_顯示;
bu.style.display = "inline";
bu.style.marginLeft = "10px";
bu.style.color = "rgb(255,150,150)";

var obj_搜尋框 = document.getElementsByClassName("TOP-search")[0];
obj_搜尋框.appendChild(bu);

fun_更新按鈕();


function fun_顯示() {

    //初始化
    document.getElementById("but_view").innerHTML = "";
    int_回文 = 0;
    int_留言 = 0;

    //回文
    var obj_1 = document.getElementsByClassName("FM-cbox1");
    for (var i = 0; i < obj_1.length; i++) {
        obj_1[i].style.display = "block";
    }

    //留言
    obj_1 = document.getElementsByClassName("FM-cbox10A");
    for ( i = 0; i < obj_1.length; i++) {
        obj_1[i].style.display = "block";
    }
}