Greasy Fork

Greasy Fork is available in English.

新浪微博净化

屏蔽含指定关键字的微博/用户/评论, 屏蔽广告/右侧主播推荐/左下播放器/右下网聊/巨幅广告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name 新浪微博净化
// @namespace WeiBoCleaner
// @include http://weibo.com/*
// @author  http://weibo.com/chainjoy
// @version 1.5
// @description 屏蔽含指定关键字的微博/用户/评论, 屏蔽广告/右侧主播推荐/左下播放器/右下网聊/巨幅广告
// @require  https://code.jquery.com/jquery-2.2.4.min.js
// @grant  GM_addStyle
// @grant  GM_getValue
// @grant  GM_setValue
// ==/UserScript==
GM_addStyle('.WB_main_c .send_weibo .input {border: 1px solid #ddd; } .WB_miniblog{ padding-top:40px;background:#BFE4EB;background-image: none;} .block_setting{float:left;position:relative;width:2px;border:5px solid rgba(255,0,0,0.3);height:10px;margin:14px 0 0 20px}.block_setting:before{content:"";position:absolute;top:-5px;left:-5px;width:2px;height:10px;border:5px solid rgba(0,255,0,0.3);-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.block_setting:after{content:"";position:absolute;width:2px;height:10px;top:-5px;right:-5px;border:5px solid rgba(0,0,255,0.3);-webkit-transform:rotate(-60deg);-ms-transform:rotate(-60deg);transform:rotate(-60deg)} #block_pop{z-index:99999;width:40%;font-size:1em;border: 1px solid #ddd;padding: 30px;background: #fff;border-radius: 7px;box-shadow: 3px 3px 6px #333;} #block_pop h2{ font-size: 1.4em;} #block_pop p{ margin:15px 0} .input_blacklist{border: 1px solid #ccc;  line-height: 18px; margin: 10px 0; padding: 0 5px;  width: 30%; min-width: 100px;} #block_pop .add_blacklist{float: none;font-size: 90%;line-height: 18px; height: 18px; cursor: pointer;margin: 10px 5px; padding: 0 10px; background: #eb7350;  color: #fff; display: inline-block;} .blacklist{margin:0 0 30px 0;} #block_pop a{ float:right} .donate_me{margin: 0 0 0 20px;position:relative} .donate_me img{ display:none;width:120px;position:absolute;right: 0;bottom: 20px;border: 1px solid #ccc; padding: 4px;background: #fff; border-radius: 3px;} .blacklist b{font-weight: normal;cursor: pointer;border: 1px solid #666;color: #333;border-radius: 3px;font-size: 10px;padding: 1px 5px;display: inline-block; margin: 10px 10px 0 0; } #block_pop input[type="radio"]{display: none; } #block_pop label{ margin:10px 0;display: block; font-size:90%; cursor:pointer;} #block_pop input[type="radio"] + label span:before {content:"";border: 1px solid #555;border-radius: 50%;display: inline-block;width: 10px; height: 10px;vertical-align: middle;margin: -2px 5px 0 0;background: #fff; } #block_pop input[type="radio"]:checked + label span:before { content:"";background: #eb7350; border:1px solid #eb7350;} .block_overlay {position: absolute;z-index:99998; opacity:0.8;top: 0px;left: 0px;height: 100%;width: 100%;background: #000; display: none;}');

(function($, undefined){
    $(function(){
        $('.gn_position').append('<a class="block_setting" href="#block_pop" title="设置黑名单"></a>');

        var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

        DO = new MutationObserver(function() {
            blockWeibo();
            removeAd();
        });

        DO.observe(document.body, {
            childList:true,
            characterData:true,
            subtree:true
        });

        var block_counts = 0;
        block_method = GM_getValue('block_method');

        function blockWeibo() {
            $('.WB_text, .WB_info').each(function() {
                var txt = $(this).text();
                if (true === wordfFind(txt)) {
                    if(block_method == 'remove'){
                        if($(this).parent('.list_con').length > 0){
                            $(this).parentsUntil('.list_li').parent().remove();
                        }else{
                            $(this).parents(".WB_cardwrap").remove();
                        }
                    }else{
                        $(this).text("... ... ... ... ...");
                        $(this).parent().find('.WB_media_wrap, .WB_tag_rec').remove();
                        if ($(this).hasClass('WB_info')) $(this).parent().text('... ... ... ... ...');
                    }
                    block_counts++;
                }
            });
        }

        function getKeywords(){
            var keyword = GM_getValue('keyword');
            if(keyword)
                return keyword.split('||');
            return [];
        }

        keywords = getKeywords();

        function wordfFind(ele) {
            for (var i = 0; i <= keywords.length; i++) {
                if (ele.indexOf(keywords[i]) != -1)
                    return true;
            }
        }

        function removeAd() {
            $('[feedtype="ad"],#Pl_Core_ThirdHtmlData__6,div[feedtype=ad], #Pl_Core_ThirdHtmlData__77, #Pl_Core_ThirdHtmlData__76,#v6_pl_ad_bottomtip,.PCD_mplayer,#WB_webim,#v6_pl_content_biztips,#v6_pl_rightmod_rank,#v6_pl_rightmod_ads35,#v6_pl_rightmod_ads36,#v6_trustPagelet_recom_member,#v6_pl_rightmod_noticeboard').remove();
        }

        $.fn.blockPop = function(opt) {
            return this.each(function() {
                $(this).click(function(e) {
                    var keyword = keywords.length === 0  ? '' : '<b>' + keywords.join('</b><b>') + '</b>';
                    var pop = $('<div id="block_pop"><h2>设置黑名单</h2><p>输入关键词, 点击添加或按回车添加到黑名单; 点击关键词移出黑名单</p><input class="input_blacklist"/><a class="add_blacklist">添加</a><div class="blacklist">' + keyword + '</div><h2>处理方式</h2><input type="radio" class="block_method" name="block_method" id="replace" value="replace"><label for="replace"><span>替换成省略号</span></label><input type="radio"  name="block_method" class="block_method" id="remove" value="remove"><label for="remove"><span>直接移除</span></label> <a class="donate_me" href="#">捐助作者 <img src="http://wx1.sinaimg.cn/large/005FXA2Dgy1fd3h1mq412j305k05k753.jpg"></a><a target="_blank" href="http://weibo.com/chainjoy">反馈/建议</a></div>');
                    if ($('#block_pop').length < 1) $('body').append(pop);
                    var overlay = $('<div class="block_overlay"></div>');
                    if ($('.block_overlay').length < 1) $('body').append(overlay);
                    var pop_id = $(this).attr('href');
                    var pop_height = $(pop_id).outerHeight();
                    var pop_width = $(pop_id).outerWidth();
                    $('.block_overlay').css({
                        display:'block',
                        height:$('body').height()
                    });
                    $('.block_overlay').fadeTo(300, 0.8);
                    $(pop_id).css({
                        position:'fixed',
                        left:($(window).width() - pop_width) / 2,
                        top:($(window).height() - pop_height) / 3
                    });
                    $(pop_id).fadeTo(300, 1);
                    $(overlay).click(function() {
                        closePop(pop_id);
                    });
                    $('.add_blacklist').click(function() {
                        var word = $('.input_blacklist').val().replace(/(<([^>]+)>)/gi, '');
                        if (word) {
                            $('.blacklist').append('<b>' + word + '</b>');
                            $('.input_blacklist').val('');
                            updateBlacklist();
                        }
                    });
                    $('.input_blacklist').keypress(function(e) {
                        if (e.which == 13)
                            $('.add_blacklist').click();
                    });
                    $('.blacklist').on('click', 'b', function() {
                        $(this).remove();
                        updateBlacklist();
                    });
                    $('.block_method').on('change', function() {
                        GM_setValue('block_method', $(this).val());
                    });
                    $('#'+block_method).prop("checked",true);

                    $('.donate_me').hover(function() {
                        $(this).children('img').stop(true, true).delay(200).show(200);
                    }, function() {
                        $(this).children('img').stop(true, true).hide(100);
                    });
                    e.preventDefault();
                });
            });

            function updateBlacklist() {
                var words_htm = $('.blacklist').html();
                var blacklist = words_htm.replace(/<b>/g, '').replace(/<\/b>/g, '||').replace(/\|\|\s*$/, '');
                //console.log(blacklist);
                GM_setValue('keyword', blacklist);
                keywords = getKeywords();
            }

            function closePop(pop_id) {
                $('.block_overlay').fadeOut(300);
                $(pop_id).css('display', 'none');
            }
        };
        // end fn blockPop
        $('.block_setting').blockPop();
    });
})(window.jQuery.noConflict(true));