Douyu Ad Remover

Remove ads on douyu.com

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Douyu Ad Remover
// @namespace    Ad Remover
// @version      0.1
// @description  Remove ads on douyu.com
// @author       X.Zhao
// @grant        none
// @match        http://www.douyutv.com/*
// ==/UserScript==
/* jshint -W097 */
'use strict';

function isEmpty(obj) {
    // null and undefined are "empty"
    if (obj === null || obj === undefined) return true;
    // Assume if it has a length property with a non-zero value
    // that that property is correct.
    if (obj.length > 0)    return false;
    if (obj.length === 0)  return true;
    // Otherwise, does it have any properties of its own?
    // Note that this doesn't handle
    // toString and valueOf enumeration bugs in IE < 9
    for (var key in obj) {
        if (hasOwnProperty.call(obj, key)) return false;
    }
    return true;
}

function remover(name, callback) {
    var $ = window.jQuery;
    if (isEmpty($) || isEmpty($(name))) {
        setTimeout(function() {
                remover(name);
            }, 500);
    } else {
        if (isEmpty(callback)) {
            // default callback is clear html content and set "display: none".
            $(name).html('').hide();
        } else {
            callback($(name));
        }
    }
}

function main() {
    remover('#chat-top-ad');
    remover('#js_chat_mem');
    remover('#cq_fans');
    remover('#js_mlist');
    remover('#dy_bottom_shadow');
    remover('#live_videobar');
    remover('.chat-right-ad');
    remove_flash_ad();
        remove_focus();
}


function remove_focus() {
    var $ = window.jQuery;
    if ($('#live_userinfo #js_share').length === 0) {
        setTimeout(remove_focus, 500);
    } else {
        $('#live_userinfo #js_share').html('').hide();
    }
}

function remove_flash_ad() {
    var $ = window.jQuery;
    if ($('#sign_p_15_swf').width() === null) {
        setTimeout(remove_flash_ad, 500);
    } else {
        // alert($('#sign_p_15_swf').width());
        $('#sign_p_15_swf').width(0).height(0);
    }
}

main();