记录优化油猴插件BD网盘播放器

Posted 跪求指点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录优化油猴插件BD网盘播放器相关的知识,希望对你有一定的参考价值。

收获最重要

前言

有钱的可以支持一下原作者,没钱就要多学习

优化

1.1 视频刚开始未播放时,可能会有弹窗,不需要管,开始播放的时候自动关闭;
1.2 视频播放时,自动关闭弹窗,并继续播放视频
1.3 视频暂停时,每10s检测一次弹窗,自动关闭弹窗
2.1 添加快捷速度调整按钮
2.2 添加2.5和3倍速
3.1 去掉下方广告

代码

将代码复制到原脚本的开头
‘use strict’;
后面

    window.alert=function()
    var timerMenu = 0;

    var timerSpeed = setInterval(() => 
        //dplayer-setting设置按钮,本来准备拦截点击动作,然后直接显示速度选择,后来发现可以append
        var Qsettings=document.getElementsByClassName("dplayer-setting");
        var QsettingBoxs=document.getElementsByClassName("dplayer-setting-box");
        console.log("Qsettings",Qsettings);
        for (var Qsetting of Qsettings )
            Qsetting.setAttribute("id", "Qsetting");
            document.getElementById('Qsetting').addEventListener('mouseenter',function() //增加触摸事件mouseover-包括子元素,会导致无法点击子元素
                QsettingBoxs[0].setAttribute("class","dplayer-setting-box dplayer-setting-box-open")
            );
            document.getElementById('Qsetting').addEventListener('mouseleave',function() //增加触摸事件mouseout-包括子元素,会导致无法点击子元素
                QsettingBoxs[0].setAttribute("class","dplayer-setting-box")
            );
            clearInterval(timerSpeed);//进入循环,说明加载成功

            //关闭广告
            var ad = document.getElementById('web-single-bottom');
            console.log(ad);
            if(ad)
                //ad.setAttribute("display", "none");//不可以
                //Element.style.display = 'none';
                ad.setAttribute('style','display:none');

            

            var html ='<div class="dplayer-setting-speed-item" style="display: flex;align-items: center;"><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=0.5>0.5</span><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=1>1</span><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=2>2</span></div>'

            $(".dplayer-setting-origin-panel").append(html);
            $(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=2.5><span class="dplayer-label">2.5</span></div>');
            $(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=3><span class="dplayer-label">3</span></div>');

            $(".dplayer-setting-speed-item").on("click",function()
                var sp =1;
                var videos=document.querySelectorAll("video");
                sp=$(this).attr("var");
                console.log(sp)
                //Math.floor(sp)
                //console.log(sp)
                //Object.prototype.toString.call(sp)//undefined
                videos[0].playbackRate=sp;//有报错但是能起作用: property on 'HTMLMediaElement': The provided double value is non-finite.
            );
        
    , 1000*3);//10s检测一次

    //addEventListener总报错,可能是页面还没加载
    //    document.getElementById('speed25').addEventListener('click',function() 
    //         var videos=document.querySelectorAll("video");
    //         console.log(videos)
    //         for (var video of videos )
    //             video.playbackRate=2.5;
    //         
    //     );

    var timerVideo = setInterval(() => 
        var videos=document.querySelectorAll("video");
        console.log("videos",videos)
        for (var video of videos )
            clearInterval(timerVideo);//进入循环,说明加载成功
            //video.play();//play() failed because the user didn't interact with the document first.
            //特性,不让无操作交互时,自动播放发出声音,可以静音播放,但是静音对用户也不太友好,需要。。可以再开开?太麻烦,自己点吧
            //最好在视频开始时点击播放一下,可以再暂停,这样可以自动关弹窗,刚进入页面不播放,不会检测弹窗
            video.addEventListener('play', function ()  //播放开始执行的函数
                console.log("开始播放");
                var menus=document.getElementsByClassName("dplayer-menu dplayer-menu-show");
                if(menus.length)//检测弹窗
                    console.log("menus",menus)
                    for (var menu of menus ) menu.setAttribute("class", "dplayer-menu");
                    console.log("自动关闭");
                
            );

            video.setAttribute("id","video");
            $('#video').bind('contextmenu',function()  return false; );//拦截右键菜单
            video.addEventListener('playing', function ()  //播放中
                console.log("播放中");
                if(timerMenu)
                
                    clearInterval(timerMenu);
                
            );
            video.addEventListener('contextmenu', function ()  //检测到弹窗 就关闭 // 只能检测手动右键
                console.log("拦截右键");
            );

            //能检测到暂停,不能检测到弹窗dplayer-menu dplayer-menu-show
            video.addEventListener('pause', function ()  //检测暂停
                console.log("暂停播放,检测弹窗");//启动计时器,暂停时间短说明是弹窗
                // var timer = setInterval(() => 
                var menus=document.getElementsByClassName("dplayer-menu dplayer-menu-show");
                if(menus.length)//检测弹窗
                    console.log("menus",menus)
                    video.play();
                    for (var menu of menus ) menu.setAttribute("class", "dplayer-menu");
                    //menu.setAttribute("display", "none");//可以设置属性,但是不隐藏
                    //menu.attr("hidden", true);//可以设置属性,但是不隐藏
                    console.log("自动关闭");
                
                //  , 1000*10);//10s检测一次

                timerMenu = setInterval(() => 
                    var menus=document.getElementsByClassName("dplayer-menu dplayer-menu-show");
                    if(menus.length)//检测弹窗
                        console.log("menus",menus)
                        //video.play();
                        for (var menu of menus ) menu.setAttribute("class", "dplayer-menu");
                        //menu.setAttribute("display", "none");//可以设置属性,但是不隐藏
                        //menu.attr("hidden", true);//可以设置属性,但是不隐藏
                        console.log("自动关闭");
                    
                , 1000*10);//10s检测一次
            );
        
    , 1000*3);//10s检测一次

收获

1.禁止浏览器弹窗

window.alert=function()

2.定时器

var timer = setInterval(() => 
 
	, 1000*10);//10s检测一次
	
clearInterval(timer);//清除定时器,timer为整数

3.设置属性-隐藏元素

                //ad.setAttribute("display", "none");//不可以
                //Element.style.display = 'none';
                ad.setAttribute('style','display:none');

4.鼠标悬停和移开事件

            document.getElementById('Qsetting').addEventListener('mouseenter',function() //增加触摸事件mouseover-包括子元素,会导致无法点击子元素
                QsettingBoxs[0].setAttribute("class","dplayer-setting-box dplayer-setting-box-open")
            );
            document.getElementById('Qsetting').addEventListener('mouseleave',function() //增加触摸事件mouseout-包括子元素,会导致无法点击子元素
                QsettingBoxs[0].setAttribute("class","dplayer-setting-box")
            );

5.添加元素

            $(".dplayer-setting-origin-panel").append(html);
            $(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=2.5><span class="dplayer-label">2.5</span></div>');
            $(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=3><span class="dplayer-label">3</span></div>');

6.div里均匀分布

   <div class="dplayer-setting-speed-item" style="display: flex;align-items: center;">
   		<span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=0.5>0.5</span>
   		<span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=1>1</span>
   		<span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=2>2</span>
   </div>

7.获取元素属性值

    $(".className").on("click",function()
                sp=$(this).attr("属性名");
                console.log(sp)
            );

8.监听播放器状态

https://www.cnblogs.com/yuanmo/p/12795104.html

            video.addEventListener('playing', function ()  //播放中
                console.log("播放中");
            );
            video.addEventListener('pause', function ()  //暂停中
                console.log("暂停中");
            );
            video.addEventListener('contextmenu', function ()  //检测到弹窗 就关闭 // 只能检测手动右键
                console.log("右键点击");
            );

9.jQuery 选择器

https://www.runoob.com/jquery/jquery-ref-selectors.html

★简单明确( ̄︶ ̄)↗——百度网盘秒传链接教程


前言

之前看到很多介绍百度网盘秒传链接的方法教程,还是感觉看起来有点麻烦并解释得不够清楚,这里整理了一下,简单且明了。使用的是火狐浏览器,教程分为三步,不了解的小伙伴可以看一下,不是很难,只需下一个火狐浏览器就可以了。这里我们推荐在电脑上进行以下步骤,手机上也可以但需将浏览器标识改为PC电脑,缩放不太方便。

一、下载火狐浏览器

首先搜索火狐浏览器,找到官网立即下载。链接如下:
火狐官网网址
在这里插入图片描述

二、安装油猴插件Tampermonkey

这里要在火狐浏览器中安装油猴插件,也比较简单,直接给链接,按操作来——>
1、首先我们点击火狐浏览器,然后进入Tampermonkey的首页,点击第一个,不要点第二个,因为第二个是测试版。
Tampermonkey网址
在这里插入图片描述
2、这里点击+Add to Firefox,添加插件。
在这里插入图片描述
然后会弹出一个小窗口,点击添加,即完成了第二步步骤。
在这里插入图片描述

三、安装插件秒传提取Greasy Fork

1、这里要安装一个秒传链接提取的插件,下面给的网址有可能打不开,多试几次应该都可以进去。点击安装此脚本
Greasy Fork
在这里插入图片描述
2、这里是一串源代码,点击安装
在这里插入图片描述

四、复制秒传链接到网页版百度网盘

现在我们讲一下如何使用插件来秒传文件至百度网盘,即当有一个秒传链接时,如何使用其传到自己的网盘。
在这里插入图片描述

1、首先是要在火狐浏览器中打开百度网盘网页版,登陆自己的账号。
在这里插入图片描述
2、进入后,我们会有以下的弹窗,这说明插件已经安装成功了。
在这里插入图片描述
3、我们会发现跟平时的百度网盘网页版不一样的是,有一个蓝色框框秒传链接,点击它。
在这里插入图片描述
4、然后在空白框中粘贴我们的秒传链接。在这里插入图片描述
5、并选择文件的存放路径,这里我选择的是已有的文件夹"YM"。
在这里插入图片描述
6、然后会提示你是否成功转存完毕的通知。
在这里插入图片描述

结语

如果不想用,想取消这个秒传链接使用的话,点击火狐浏览器右上角的一个图标,这里随时可以启用关闭。
在这里插入图片描述
这就是本次的所有教程的所有内容,觉得有帮助的小伙伴们给个赞或者关注什么的哈哈哈哈。
在这里插入图片描述

以上是关于记录优化油猴插件BD网盘播放器的主要内容,如果未能解决你的问题,请参考以下文章

油猴脚本:百度网盘搜索引擎聚合

不扩展油猴插件可以刷课吗

如何安装tampermonkey

百度网盘——下载限速问题解决方案(油猴(Tampermonkey)+百度网盘直链下载助手+IDM)

Tampermonkey (油猴Chrome扩展) 最新版使用方法

浏览器神器“油猴”使用教程