油猴(Tampermonkey)脚本 ——NGA显示赞和隐藏的踩

qikor_admin 提交于 周五, 08/11/2017 - 19:43

// ==UserScript==
// @name         NGA show up down counts
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://bbs.ngacn.cc/read.php?tid=*
// @grant        none
// ==/UserScript==
var old_int_count_table_postbox = 0;
var iiii;

new_element=document.createElement("script");
new_element.setAttribute("type","text/javascript");
new_element.setAttribute("src","http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js");
document.body.appendChild(new_element);

setTimeout(function(){
    $(document).ready(function(){

        //遍历获取顶和踩的数量
        var first_id = $(".postbox").eq(0).find('div.x').attr('id');
        var first_num = first_id.replace('postsign','');
        first_num = parseInt(first_num);

        show_up_down(first_num);
    });
},2000);

function show_up_down(first_num){

    clearInterval(iiii);
    // alert('test');

    //获取主题帖+回复帖总数
    var lst_table_postbox = $(".postbox");
    var now_int_count_table_postbox = lst_table_postbox.length;
    var int_count_table_postbox;

    if (old_int_count_table_postbox === 0) {
        int_count_table_postbox = now_int_count_table_postbox;
        old_int_count_table_postbox = now_int_count_table_postbox;
    }else{
        int_count_table_postbox = now_int_count_table_postbox-old_int_count_table_postbox;
        old_int_count_table_postbox = now_int_count_table_postbox;
    }

    //获取所有的顶和踩的总数
    //var arr_diggup_count = new Array();
    //var arr_diggdo_count = new Array();
    var str_html = $(":root").html();
    // console.log(str_html);


    for (var i = first_num; i < parseInt(first_num) + parseInt(int_count_table_postbox); i++) {
        var int_start = str_html.indexOf('<div id="postsign' + i);
        var int_end = 0;
        if (int_start > 0)
        {
            int_end = str_html.indexOf("</script>", int_start);
            var str_digg_html = str_html.substring(int_start+30, int_end);
            if (str_digg_html && str_digg_html.indexOf("postArg")>0)
            {
                //二次遍历
                var int_start_digg = str_digg_html.indexOf('commonui.postArg.proc(');
                var int_end_digg = 0;
                if (int_start_digg > 0)
                {
                    int_end_digg = str_digg_html.lastIndexOf(')');
                    var str_digg_script_html = str_digg_html.substring(int_start_digg+22, int_end_digg);
                    //alert(str_digg_script_html);
                    var arr_digg_script = str_digg_script_html.split(",");
                    var str_diggup = arr_digg_script[16];
                    var str_diggdo = arr_digg_script[17].substring(0, arr_digg_script[17].length - 1);
                    //alert("diggup=" + str_diggup + "&&&&&&&&diggdo=" + str_diggdo);

                    //赋值
                    $("#postcontentandsubject"+ i +" div span span.white").text(str_diggup);
                    $("#postcontentandsubject"+ i +" div span a:eq(1) span:eq(0)").append('<span class=" white" title="">'+ str_diggdo +'</span>');

                }
            }
        }

    }

    first_num = parseInt(first_num) + parseInt(int_count_table_postbox);
    //console.log(lst_table_postbox.length);
    //获取所有的主题帖和回复帖

    iiii = setInterval(function(){
        var lst_table_postbox = $(".postbox");
        var new_int_count_table_postbox = lst_table_postbox.length;

        if (new_int_count_table_postbox > now_int_count_table_postbox) {
            show_up_down(first_num);
        }
    },1000);
}