Greasy Fork

Greasy Fork is available in English.

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

作者:hbl91707(異音)

目前为 2016-09-08 提交的版本,查看 最新版本

// ==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.33
// @grant       none
// @description         作者:hbl91707(異音)
// @description:zh-tw   作者:hbl91707(異音)
// ==/UserScript==
//

/*

巴哈姆特-場外休憩區--隱藏廢文
更新日期:2016-09-08

說明:
  1.可設定【回文】小於幾個字就不顯示。
  2.可設定【留言】小於幾個字就不顯示。
  3.可設定特定的文字不顯示,例如回文or留言只有一個【卡】,就不顯示。
  4.網頁最上方會顯示隱藏的回文與留言數量。點擊後可以解除隱藏,並且會變成紅色背景以方便檢查。


作者小屋:
http://home.gamer.com.tw/homeindex.php?owner=hbl917070

*/

//-------------------------------------------------------------

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


//在判斷長度是否會被過濾之前,會先隱藏這裡的文字
//例如:【私私 推】雖然有4個字,但是實際上長度是0,因為【推】跟【私】跟【空白】會被無視
var s_過濾特定文字 = [
    /單戈哥欠/g, /泰瑞/g, /通知/g, /再說/g, /在說/g, /形狀/g, /老婆/g, /拜託/g, /總之/g,

    /ㄅ/g, /ㄈ/g, /ㄍ/g, /ㄊ/g, /ㄌ/g, /ㄙ/g, /ㄏ/g, /ㄓ/g, /ㄛ/g,
    /c/ig, /a/ig, /r/ig, /g/ig, /i/ig, /n/ig, /d/ig, /e/ig, /x/ig, /d/ig, /w/ig,

    /私/g, /斯/g, /濕/g, /絲/g, /司/g, /禾/g, /厶/g, /戰/g, /哥/g, /歌/g, /上/g, /我/g,
    /車/g, /香/g, /先/g, /穴/g, /好/g, /啦/g, /拉/g, /斷/g, /火/g, /喔/g, /來/g, /吧/g,
    /啊/g, /阿/g, /的/g, /個/g, /求/g, /哦/g, /乃/g, /感/g, /恩/g, /謝/g, /蓋/g, /懂/g,
    /棒/g, /硬/g, /爆/g, /推/g, /卡/g, /看/g, /幹/g, /豪/g, /了/g, /甲/g, /大/g, /啪/g,
    /野/g, /狂/g, /笑/g, /真/g, /想/g, /舔/g, /噓/g, /分/g, /糞/g, /怕/g, /嗎/g, /射/g,
    /滑/g, /倒/g, /嗯/g, /首/g,

    /^\s+|\s+$/g, /\r/g, /\n/g, /[.]/g, /[=]/g, /[?]/g, /[+]/g, /%/g, /[,]/g, /~/g, /8/g, /7/g, /1/g, /0/g, /!/g,
    /?/g, /%/g, /…/g, /。/g, /,/g, /!/g, /~/g, / /g
];

//-------------------------------------------------------------


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;

    if (s.length < 50)
        for (var k = 0; k < s_過濾特定文字.length; k++) {
            if (s.length <= int_回文小於特定長度)
                break;
            s = s.replace(s_過濾特定文字[k], "");
        }


    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;
            }

}


fun_隱藏留言(0);



function fun_隱藏留言(t) {

    var time = 1800;

    if (t === 0)///第一次載入時不需要延遲
        time = 0;

    setTimeout(function () {

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

            //取得留言內容
            var s = obj_1[i].innerHTML.replace(/^\s+|\s+$/g, "");
            var len2 = s.indexOf('</a>:');//
            var len3 = s.indexOf('<span>');//

            s = s.substring(len2 + 5, len3);


            if (s.length < 20)
                for (var k = 0; k < s_過濾特定文字.length; k++) {
                    if (s.length <= int_留言小於特定長度)
                        break;
                    s = s.replace(s_過濾特定文字[k], "");
                }



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



        }//for

        fun_更新按鈕();

    }, time);
}






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

        obj.style.display = "none";
        obj.style.backgroundColor = "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 = "block";
bu.style.float = "left";
bu.style.marginLeft = "170px";
bu.style.marginTop = "-27px";
bu.style.color = "rgb(255,150,150)";

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

obj_搜尋框.appendChild(bu);


//hover
try{
    $("#but_view").hover(function(){
        $("#but_view").css("color","#117E96");
    },function(){
        $("#but_view").css("color","rgb(255,150,150)");
    }); 
}catch(e){}

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";
    }
}