Greasy Fork is available in English.

Kill TieBa AD

Just Kill TieBa AD

Verzia zo dňa 29.10.2016. Pozri najnovšiu verziu.

// ==UserScript==
// @name         Kill TieBa AD
// @name:zh-CN   贴吧伪装广告清理
// @namespace    hoothin
// @version      0.46
// @description        Just Kill TieBa AD
// @description:zh-CN  清理ADB与ADP未能清理掉的百度贴吧列表伪装广告、帖内伪装广告与推荐应用广告
// @author       hoothin
// @include      http*://tieba.baidu.com/*
// @grant        none
// @run-at       document-body
// @supportURL   http://www.hoothin.com
// @license     MIT License
// @compatible        chrome
// @compatible        firefox
// ==/UserScript==

(function() {
    'use strict';
    var observer, option;
    var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
    var tcss = ".j_encourage_entry{display: none !important;} #encourage_entry{display: none !important;} .tpoint-skin{display: none !important;} #pb_adbanner{display: none !important;} .iframe_wrapper{display: none !important;}";
    var snod = document.createElement('style');
    snod.innerHTML = tcss;
    document.getElementsByTagName("head")[0].appendChild(snod);
    var content = document.querySelector("#content");
    if(content){
        observer = new MutationObserver(function(records){
            delAD("#thread_list","LI");
        });
        option = {
            'childList': true,
            'subtree': true
        };
        observer.observe(content, option);
    }else{
        content=document.querySelector(".content");
        if(!content)return;
        observer = new MutationObserver(function(records){
            delAD("#j_p_postlist","DIV");
        });
        option = {
            'childList': true,
            'subtree': true
        };
        observer.observe(content, option);
    }

    function delAD(a,b){
        var threadList = document.querySelector(a);
        if(!threadList) return;
        var delList = [];
        for(let thread of threadList.childNodes){
            if(thread.tagName == "STYLE"){
                delList.push(thread);
                var previousSibling = thread.previousSibling;
                previousSibling = previousSibling.tagName == b?previousSibling:previousSibling.previousSibling;
                delList.push(previousSibling);
            }else if(thread.getAttribute && thread.getAttribute("data-isautoreply")){
                delList.push(thread);
            }
        }
        for(let del of delList){
            threadList.removeChild(del);
        }
        var easyAD, easyADs=document.querySelectorAll("span.label_text");
        for(easyAD of easyADs){
            if(easyAD.innerHTML=="广告" && easyAD.parentNode && easyAD.parentNode.parentNode){
                easyAD.parentNode.parentNode.removeChild(easyAD.parentNode);
            }
        }
    }
})();