Greasy Fork

Greasy Fork is available in English.

妮可,嗨哆咪,美剧社,樱花...广告过滤

喜欢看动漫但在手机端访问网页时一堆广告,基本屏幕都被占满了还看个毛线,所以这里屏蔽了动态加载的广告脚本,有些没用的轮播也去掉了,同时页面也稍微处理了下

当前为 2020-07-13 提交的版本,查看 最新版本

// ==UserScript==
// @name         妮可,嗨哆咪,美剧社,樱花...广告过滤
// @namespace    https://www.yqsphp.com
// @version      1.1.5
// @description  喜欢看动漫但在手机端访问网页时一堆广告,基本屏幕都被占满了还看个毛线,所以这里屏蔽了动态加载的广告脚本,有些没用的轮播也去掉了,同时页面也稍微处理了下
// @author       YQS
// @match        *://www.nicotv.me/*
// @match        *://www.nicotv.club/*
// @match        *://www.haiduomi.cc/*
// @match        *://m.meijushe.cc/*
// @match        *://www.tv432.com/*
// @match        *://m.yhdm.tv/*
// @run-at       document-start
// @require      http://code.jquery.com/jquery-1.10.2.min.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    /**
     * 参数配置
     * filter:过滤规则
     * node 阻止通过document.createElement创建的元素
     ****/

    var write_config = {
        "nicotv":{
            "filter":["img.fsmkbl.cn",/<iframe>?.*<\/iframe>/i],
            "node":["div","a","img","script","style"],
        },
        "yhdm":{
            "filter":["div",/<iframe>?.*<\/iframe>/i],
            "node":["a","img","style"]
        },
        "haiduomi":[],
        "meijushe":[],
        "tv432":[]
    };
    var host = window.location.host;
    //document.write = function(doc){console.log(doc);}
    var _write = document.write;
    var _create = document.createElement;
    /**
     * 重写alert write
     * 阻止弹窗和节点动态写入
     * 过滤掉显示图片和视频播放
     * @object doc 待写入html的动态文本
     * @object togo 过滤的名单数组
     * @object flag 1,白名单可写入,2.黑名单不可写入
     */
    var init_write = function(doc,togo,flag){
        for(var i in togo){
            if(flag == 1){
                if(doc.search(togo[i]) != -1){
                    document.write = _write;
                    document.write(doc);
                    document.write = new_write;
                }
            }else{
                if(doc.search(togo[i]) != -1){
                    return false;
                }
            }
        }

    }
    var new_write = function(doc){
        if(host.search("nicotv") != -1){
            console.log(doc);
            //妮可
            init_write(doc,write_config.nicotv.filter,1);
        }else if(host.search("yhdm") != -1){
            //樱花
            console.log(host);
            init_write(doc,write_config.yhdm.filter,1);
        }
    }

    var node = function(tag){
        if(host.search("nicotv") != -1){
            var nico = write_config.nicotv.node;
            if(nico.indexOf(tag) != -1){
                return false;
            }
        }else if(host.search("yhdm") != -1){
            var yhdm = write_config.yhdm.node;
            if(yhdm.indexOf(tag) != -1){
                return false;
            }
        }
        return true;
    }
    document.createElement = function(tag){
        if(node(tag)){
            return _create.apply(this, arguments);
        }else{
            return false;
        }
    }
    document.write = new_write;
    window.alert = function(doc){return false;}
    window.onerror = function(){return true;}
    //移除html中非host的script广告域名,需不需要无所谓了
    /*
    var shift = function(host){
        $("script").each(function(){
            var t = $(this);
            var src = t.context.src;
            //console.log(src);
            if(typeof(src) != "undefined" && src != ""){
                var url = new URL(src);
                if(url.origin.indexOf(host) == -1 && t.context.id !="zm-extension"){
                    t.remove();
                }
            }else{
                t.remove();
            }
        });
    }
    */
    document.onreadystatechange = function(){
        if(document.readyState == "complete"){
            if("www.nicotv.me" == host || "www.nicotv.club" == host){
                //shift("img.fsmkbl.cn");
                var style = "padding-top:0 !important;margin-top:0 !important;";
                $("body").attr("style",style);
                $(".navbar").attr("style",style);
                $(".slide").parent().remove();
                $(".ff-clearfix").remove();
                $(".clearfix-ads").remove();
                $(".ff-ads").remove();
                $(".ff-img").each(function(){
                    var img = $(this).attr("data-original");
                    $(this).attr("src",img);
                });
                //以下针对移动端设定
                var mobile = /Android|webOS|iPhone|iPod|BlackBerry/i;
                var path = location.pathname;
                if(mobile.test(navigator.userAgent) && (path.indexOf("-addtime") != -1 || path.indexOf("-hits") != -1)){
                    //dl-horizontal
                    var select = $(".dl-horizontal dd");
                    select.css({"white-space":"nowrap","overflow-x":"scroll","overflow-y":"hidden"});
                    //添加 圣墟
                    var a = document.createElement("a");
                    a.href = "/video/type3/肾虚系列------addtime.html";
                    a.className = "btn btn-sm btn-default gallery-cell";
                    a.text = "圣墟";
                    select.eq(1).append(a);
                }
            }else if("m.yhdm.tv" == host){
                $(".swipe").remove();
                $("div[id^=sjdb_div_]").remove();
                $("div[id^=z]").remove();
                //shift(host);
            }
        }

    }
})();