Greasy Fork

Greasy Fork is available in English.

妮可,嗨哆咪,樱花,美剧网,黑米影视....广告过滤

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

当前为 2020-09-15 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         妮可,嗨哆咪,樱花,美剧网,黑米影视....广告过滤
// @namespace    https://www.yqsphp.com
// @version      1.2.0
// @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/*
// @match        *://91mjw.com/*
// @grant        GM_setValue
// @grant        GM_getValue
// @run-at       document-start
// @require      http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';
    var host_arr = window.location.host.split("."); //分割域名简化匹配
    var _host = host_arr.length > 2 ? host_arr[1] : host_arr[0];
    var mobile = /Android|webOS|iPhone|iPod|BlackBerry/i; //检查移动端正则
    var path = location.pathname; //url域名后的地址
    /**
     * 参数配置
     * filter:过滤规则
     * node 阻止通过document.createElement创建的元素写入
     * disabled 1.允许"filter"通过,2.阻止"filter"通过
     ***/
    var write_config = {
        "filter":{
            "nicotv":["img.fsmkbl.cn","img.zkyimiao.com",/<iframe>?.*<\/iframe>/i],
            "yhdm":["div",/<iframe>?.*<\/iframe>/i],
            "haiduomi":[/<style>?.*<\/style>/i,/<div>?.*<\div>/i,/<script>?.*<\/script>/i],
            "91mjw":[],
            "tv432":[/<iframe>?.*<\/iframe>/i]
        },
        "node":{
            "nicotv":["div","a","img","script","style","ins","span"],
            "yhdm":["a","img","style"],
            "haiduomi":["canvas","style","img","div"],
            "91mjw":["style","script","div"],
            "tv432":["script","canvas"]
        },
        "disabled":{
            "nicotv":1,
            "yhdm":1,
            "haiduomi":1,
            "91mjw":2,
            "tv432":1
        }
    };
    var _write = document.write;
    var _create = document.createElement;
    function w(doc){
        console.log(w);
    }
    /**
     * 重写alert write
     * 阻止弹窗和节点动态写入
     * 过滤掉显示图片和视频播放
     * @object doc 待写入html的动态文本
     * @object togo 过滤的名单数组
     * @object flag 1,白名单可写入,2.黑名单不可写入
     */
    var new_write = function(doc){
        console.log("write写入的文本-"+doc);
        var togo = write_config.filter[_host];
        var flag = write_config.disabled[_host];

        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;
                }
            }
        }
    }

    document.createElement = function(tag,flag){
        //console.log("create创建的节点-"+tag);
        if(flag){
            return _create.apply(this, arguments);
        }else if(write_config.node[_host].indexOf(tag) != -1){
            //console.log("create阻止的节点-"+tag);
            return false;
        }else{
            return _create.apply(this, arguments);
        }
    }
    document.write = new_write;
    window.alert = function(doc){return false;}
    window.onerror = function(){return true;}
    //以下是添加优化页面,也有本身源码html自带广告等处理
    document.onreadystatechange = function(){
        if(document.readyState == "complete"){
            if("nicotv" == _host){
                document.oncontextmenu = true;
                document.onkeydown = function () {
                    if (window.event && window.event.keyCode == 123) {
                        event.keyCode = 0;
                        event.returnValue = false;
                        return false;
                    }
                };
                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);
                });
                //以下针对移动端设定
                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{
                    //宽屏窄屏设置
                    var f = document.createElement("a",1);
                    f.className = "btn btn-default btn-sm big";
                    f.text = "宽屏";
                    var ht = $(".ff-playbtn dd").append(f);
                    $(f).click(function(){
                        if($(this).hasClass("big")){
                            f.text = "窄屏";
                            $("#cms_player").parent().removeClass("col-md-8").addClass("col-md-12");
                            GM_setValue("mbig",true);
                            $(this).removeClass("big");
                        }else{
                            f.text = "宽屏";
                            $("#cms_player").parent().removeClass("col-md-12").addClass("col-md-8");
                            $(this).addClass("big");
                            GM_setValue("mbig",false);
                        }
                    });
                    //获取用户视频的自定义宽屏还是窄屏
                    if(GM_getValue("mbig")){
                        $("#cms_player").parent().removeClass("col-md-8").addClass("col-md-12");
                        f.text = "窄屏";
                        $(f).removeClass("big");
                    }else{
                        f.text = "宽屏";
                        $(f).addClass("big");
                        $("#cms_player").parent().removeClass("col-md-12").addClass("col-md-8");
                    }
                }
            }else if("yhdm" == _host){
                $(".swipe").remove();
                $("div[id^=sjdb_div_]").remove();
                $("div[id^=z]").remove();
            }else if("haiduomi" == _host){
                var img = "";
                $(".stui-vodlist__thumb").each(function(){
                    var _this = $(this);
                    img = _this.attr("data-original");
                    if(typeof(img) == "undefined"){
                        img = _this.children("img").attr("data-original");
                        _this.children("img").attr("src",img);
                    }else{
                        _this.attr("style","background-image:url("+img+")");
                    }
                });
                $(".stui-pannel_hd > .stui-screen__list").css({"white-space":"nowrap","overflow-x":"scroll","overflow-y":"hidden"});
            }else if("tv432" == _host){

            }else if("91mjw" == _host){
                $(".zzgg-post").remove();
                $(".sidebar > div").eq(2).remove();
            }
        }

    }
})();