Greasy Fork

自动屏蔽三无用户点赞超过50%的回答

自动屏蔽知乎三无用户点赞数>=50%的回答

目前为 2016-10-18 提交的版本。查看 最新版本

// ==UserScript==
// @name         自动屏蔽三无用户点赞超过50%的回答
// @namespace    http://bingkubei.cn/
// @version      0.5
// @description  自动屏蔽知乎三无用户点赞数>=50%的回答
// @author       flowfire
// @match        https://www.zhihu.com/question/*
// @grant        none
// ==/UserScript==

/*
依次获取每个回答的点赞用户
取前50位(太多怕卡,可以自己定义)
没有头像,0赞同,0感谢,0提问,0回答
只要其中超过三样,就算做三无用户
三无用户点赞数超过样本的一半则自动屏蔽
*/
(function() {
    "use strict";
    var maxcount = 50;//检查数量,默认50,如果网好可以多设一点、最大可以设置成Infinity
    var timer = 1000;//循环检查的时钟,默认一秒循环一次,已经检查的不会再次检查,所以保持1s即可。
    //回答区域
    var box = $("#zh-question-answer-wrap");
    var check = function(){box.children().each(function(index,dom){
        //每个单独的回答
        if($(dom).attr("data-checked-user")=="true"){
            return;
        }
        $(dom).attr("data-checked-user","true");
        var aid = $(dom).attr("data-aid");
        var count = 0;
        var whiteuser = 0;
        var calcUser = function(nexturl){
            if(nexturl===""||count>=maxcount){
                if(count>10&&whiteuser/count>=0.5){
                    $(dom).children().hide();
                    //$(dom).css("background","red");
                    $(dom).append("<div data-tag=\"hide-answer\" style=\"border:1px solid #c66;background:#fcc;color:#a33;padding:5px 10px;border-radius:4px;cursor:pointer;\">该回答由于超过半数点赞用户为三无用户而被隐藏(总赞数:"+count+",三无用户:"+whiteuser+"),【点击显示】</div>");
                    $(dom).find("[data-tag=\"hide-answer\"]").on("click",function(){
                        $(this).parent().children().show();
                        $(this).hide();
                    });
                }
                return;
            }
            $.ajax({
                url : nexturl,
                method : "get",
                dataType : "json",
                success : function(data){
                    count += data.payload.length;
                    data.payload.forEach(function(data){
                        var zero = 0;
                        var userinfo = $($.parseHTML(data));
                        var img = userinfo.find("img").attr("src");
                        var zt = userinfo.find(".status li span:eq(0)").html();
                        var gx = userinfo.find(".status li span:eq(1)").html();
                        var tw = userinfo.find(".status li a:eq(0)").html();
                        var hd = userinfo.find(".status li a:eq(1)").html();
                        if(img == "https://pic1.zhimg.com/da8e974dc_m.jpg")
                            zero += 1;
                        if(zt == "0 赞同")
                            zero += 1;
                        if(gx == "0 感谢")
                            zero += 1;
                        if(tw == "0 提问")
                            zero += 1;
                        if(hd == "0 回答")
                            zero += 1;
                        if(zero>=3)
                            whiteuser += 1;
                    });
                    calcUser(data.paging.next);
                }
            });
        };
        calcUser("/answer/"+aid+"/voters_profile");
    });
    };
    setInterval(check,timer);
    // Your code here...
})();