Greasy Fork

Greasy Fork is available in English.

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

作者:hbl91707(異音)

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

您需要先安装一款用户脚本管理器扩展,例如 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.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";
    }
}