Greasy Fork

Greasy Fork is available in English.

百度云精简

删除“复制这段内容后打开百度网盘手机App,操作更方便哦,来自百度会员超级无敌永久svip”,精简部主页广告、邀请,视频添加倍速按钮

目前为 2021-04-06 提交的版本。查看 最新版本

// ==UserScript==
// @icon         https://nd-static.bdstatic.com/v20-static/static/favicon.ico
// @name         百度云精简
// @namespace    taozhiyu.gitee.io
// @version      0.3.2
// @description  删除“复制这段内容后打开百度网盘手机App,操作更方便哦,来自百度会员超级无敌永久svip”,精简部主页广告、邀请,视频添加倍速按钮
// @author       涛之雨
// @require      https://cdn.bootcdn.net/ajax/libs/clipboard.js/2.0.6/clipboard.min.js
// @match        *://pan.baidu.com/disk/*
// @match        *://pan.baidu.com/mbox/*
// @match        *://pan.baidu.com/play/*
// @match        *://yun.baidu.com/disk/*
// @match        *://yun.baidu.com/mbox/*
// @match        *://yun.baidu.com/play/*
// @match        *://pan.baidu.com/s/*
// @match        *://yun.baidu.com/s/*
// @match        *://pan.baidu.com/share/*
// @match        *://yun.baidu.com/share/*
// @grant	     GM_addStyle
// @grant	     unsafeWindow
// @home-url	 http://greasyfork.icu/zh-CN/scripts/422814
// @license      GPL-3.0-only
// ==/UserScript==
/**********************************************\
 * 小尾巴部分修改自http://greasyfork.icu/zh-CN/scripts/374100
 * V 0.3.2
 * 紧急修复误伤压缩包查看的bug
 * V 0.3.1
 * 新增对于【压缩包】、【CAD】和【思维导图】文件打开引导的屏蔽。
 * 新增在播放界面,新增快捷键控制播放速度:
 * -- (shift键)无论是否按下,按数字【0】即可恢复正常速度(原速快捷键)
 * -- 按下数字【1-9】可以分别调整速度为【1.25,1.5,1.75,2,2.4,2.7,4,6,8】(倍速快捷键)
 * -- 按下【shift】后再按下数字【1-9】可以分别调整速度为【0.01,0.05,0.1,0.2,0.25,0.5,0.6,0.8,0.9】(慢速快捷键)
 * -- (shift键)无论是否按下,每次按下【-】,当前速率减小0.1
 * -- (shift键)无论是否按下,每次按下【=】,当前速率增加0.1
 * V 0.3.0
 * 添加 + 自动读取、提交提取码的功能(第一次运行需要授权,有引导界面)
 * V 0.2.9
 * 修复 + 因为图省事,通用匹配导致某些界面被屏蔽的bug
 * V 0.2.8
 * 修复 + 视频倍速播放自动恢复的暗装(涛之雨全网独家的方法,如有借鉴请说明出处)
 * V 0.2.7
 * 调整 + 转存后的布局
 * 修复 + 删除部分遗漏广告
 * 新增 + 对于文件分享界面,的去广告支持
 * V 0.2.6
 * 新增 + 对于分享页的适配(去广告)
 * 新增 + 视频播放页添加倍速按钮(仿原生,贼强)
 * 添加 + 遵循协议 GPL-3.0-only
 * TODO : 默认永久分享(可自定义1-365天和永久)
 * TODO : 自定义分享密码(或公开链接,无密码)
 * TODO : 自定义限制分享次数链接
 * V 0.2.5
 * 新增 + 对于“在线视频”界面的支持
 * TODO : 加上倍速播放按钮
 * V 0.2.4
 * 新增 + 对于“分享”界面的支持
 * V 0.2.3
 * 删除 - 百度文库相关代码,迁移到新项目
 * V 0.2.1
 * 新增 + 百度文库大量垃圾、广告删除
 * TODO : 正在研究非VIP会员免【广告全屏阅读】
 * V 0.1.7
 * 修复 + “个人分享”界面“复制这段内容...”移除失败的bug
 * 新增 + 删除主界面的部分垃圾(可以自行对比)
 * 新增 + 关闭4秒内主动弹出的【设备管理】、【新功能测试】、【在线文档】、【在线解压】、等等。。。窗口
\************************************************/
(function() {
    'use strict';
    const saveInfo=(a)=>{
        localStorage.setItem("BaiduYunBeautify", JSON.stringify(a));
    };
    const getInfo=()=>{
        return JSON.parse(localStorage.getItem("BaiduYunBeautify"));
    };

    let info=(getInfo()&&Object.keys(getInfo()).length>0)?getInfo():{"SetKey":true};

    GM_addStyle(`.phone-banner,
.button-badge,
.hx-right-bottom,
.title-wrap > .join-vip,
.title-wrap > .info,
.hx-bottom-wrapper,
.hx-recom-wrapper,
.app-btn,.hx-warp,
.relative-doc-ad-wrapper,
.qr-wrapper,
.cert-tip,
.side-doc-tool-wrapper,
.feedback-wrapper,
.popover-container,
.privilege-box,
.vip-pop-wrap,
.red-point,
.wp-side-options,
.module-header-wrapper > dl > dd[node-type='header-union'],
.yike-entrance,
.find-light-icon,
.newIcon,
.app-download,
.app-notice,
.icon-notice,
.icon-feedback,
.app-feedback,
.wp-disk-header__right-item,
.bz-doc-tool-dialog-fix,
.ex-wrapper,
.fixed-activity-bar,
.vip-card-wrap,
.btn-img-tips,
.rights-section,
a[title="举报"],
div[class^="ad-"],
.share-file__link-ad,
.vip-activity-content,
.video-title-right-open-mobile,
.tips{
display:none!important;
width:0!important;
overflow:hidden!important;
}

.after-trans-dialog .info-section {
    padding-top: 99px!important;
}

#SetKey{
display: inline-block;
color: #fff;
font-size: 16px;
height: 42px;
line-height: 38px;
margin: 0 25px;
vertical-align: middle;
position: relative;
padding: 0 2px;
cursor: pointer;
}

#SetKey:hover {
    opacity: .8;
}
`);
    let t = " ", e = "text", o = "去除小尾巴失败o(╥﹏╥)o", a = "body", l = "copy",y=true,f=(a)=>{a.style.display="none";a.style.width=0;a.style.overflow="hidden"};
    document.querySelector(a).addEventListener(l, function(a) {try {let l = a.target.value;l = l.split(t).filter((t, e) => {if(!!t.match(/手机App|复制这段/))y=false;return y}).join("").replace("提取码"," 提取码"),a.clipboardData.setData(e, l),a.preventDefault(),y=true; } catch (a) { console.log(o);}});
    function autoInputCode(callback){
        navigator.clipboard.readText().then(a =>{
            callback(true,a)
        }) .catch((v) => {
            callback(false,v)
        });
    }
    if(location.href.indexOf("baidu.com/disk/")>=0){
        let id=setInterval(()=>{
            document.querySelectorAll(".close-mask").forEach(a=>{a.click()});
            document.querySelectorAll(".dialog-close").forEach(a=>{a.click()});
            document.querySelectorAll(".wp-guide-dialog-close").forEach(a=>{a.click()});
            document.querySelectorAll(".guide-dialog-close").forEach(a=>{a.click()});
            document.querySelectorAll(".wp-disk-header__right-item").forEach((a)=>{if(a.href&&!!a.href.match(/buy|addnew/)){f(a);}});
        },1);
        setTimeout(()=>{clearInterval(id)},4000)
        window.addEventListener("mouseup",a=>{
            if(a.target.title!=="分享"){return;}
            let id2=setInterval(()=>{
                const x=document.querySelectorAll(".share-file__link-ad");
                if(!x){return;}
                x.forEach((a)=>{f(a);});
                //                 if(document.querySelector("#g-select-1 > button"))document.querySelector("#g-select-1 > button").innerHTML="永久有效";
                //                 if(document.querySelector(".is-selected"))document.querySelector(".is-selected").classList.remove("is-selected")
                //                 if(document.querySelector("#g-select-1 > button"))document.querySelector("#g-select-1 > button").click()
                //                 if(document.querySelector("#g-select-1 > div > div[data-value='0']"))document.querySelector("#g-select-1 > div > div[data-value='0']").click()//.classList.add("is-selected")
                setTimeout(()=>{clearInterval(id2)},100);
            },10);
        });
    }else if(location.href.indexOf("play/video")>=0){
        const w=unsafeWindow||window;
        //         w.info=info;
        let id=setInterval(()=>{
            if(w.videojs&&w.videojs.players&&w.videojs.players.html5player){
                clearInterval(id);
                if(!w.videojs.players.html5player.controlBar.childNameIndex_.playbackRateMenu||!document.querySelector(".level-2,.level-1")){//没有倍速按钮的填上&&会员不用替换了
                    const Myplayback=w.videojs.extend(w.videojs.getComponent('PlaybackRateMenuButton'), {
                        handleClick: function() {
                            this.menu.el_.style.display = 'none';
                        },
                        playbackRates: function() {
                            return [0.5,1,1.5,2,2.7,4];
                        },
                        controlText_:" 播放速率,\n涛之雨解锁VIP"
                    });
                    w.videojs.registerComponent('Myplayback', Myplayback);
                    clearInterval(id);
                    w.videojs.players.html5player.controlBar.addChild('Myplayback', {}, 6);
                    w.videojs.players.html5player.controlBar.removeChild('playbackRateMenu');
                    //                 let i=0;
                    //                 let cao=setInterval(()=>{
                    for(let k=0;k<99999;k++)clearTimeout(k);//移除锁定
                    //                     if(i>=99999)clearInterval(cao);
                    //                 },100);
                }
                var SetKey=document.createElement("sapn");
                SetKey.id="SetKey";
                SetKey.innerHTML="快捷键已"+(info.SetKey===true?"打开【√】":"关闭【×】");
                SetKey.title=` * 在播放界面,新增快捷键控制播放速度:
 * (shift键)无论是否按下,按数字【0】即可恢复正常速度(原速快捷键)
 * 按下数字【1-9】可以分别调整速度为【1.25,1.5,1.75,2,2.4,2.7,4,6,8】(倍速快捷键)
 * 按下【shift】后再按下数字【1-9】可以分别调整速度为【0.01,0.05,0.1,0.2,0.25,0.5,0.6,0.8,0.9】(慢速快捷键)
 * (shift键)无论是否按下,每次按下【-】,当前速率减小0.1
 * (shift键)无论是否按下,每次按下【=】,当前速率增加0.1`;
                document.querySelector('dd[node-type="header-link"]').append(SetKey);
                document.querySelector("#SetKey").onclick=(a)=>{
                    info.SetKey=!info.SetKey;
                    a.target.innerHTML="快捷键已"+(info.SetKey===true?"打开【√】":"关闭【×】");
                    saveInfo(info);
                }
                var safeTime=false;
                document.onkeydown=function(e){
                    if(safeTime||!info.SetKey)return;
                    safeTime=true;
                    var k=e.keyCode || e.which || e.charCode;
                    var p=w.videojs.getPlayers("video-player").html5player.tech_.playbackRate();
                    if(k===48)p=1;
                    else if(k>=49&&k<=57)p=(!e.shiftKey?[1.25,1.5,1.75,2,2.4,2.7,4,6,8]:[0.01,0.05,0.1,0.2,0.25,0.5,0.6,0.8,0.9])[k-49];
                    else if(k===189)p-=0.1;
                    else if(k===187)p+=0.1;
                    w.videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(parseFloat(p.toFixed(2)));
                    setTimeout(()=>{safeTime=false},200);
                }
            }
        },500);
        //setTimeout(()=>{clearInterval(id)},10000)
    }else if(location.href.indexOf("share/init")>=0){
        const saveInfo=(a)=>{
            localStorage.setItem("taozhiyuPanConfig", JSON.stringify(a));
        };
        const getInfo=()=>{
            return JSON.parse(localStorage.getItem("taozhiyuPanConfig"));
        };
        let info=(getInfo()&&Object.keys(getInfo()).length>0)?getInfo():{"isfrist":true};
        if(info.isfrist){
            info.isfrist=false;
            saveInfo(info);
            var m=document.createElement("div");
            m.style="position: fixed;left: 0px;top: 0px;z-index: 50;background: rgb(0, 0, 0);opacity: 0.7;font-size: 30px;width: 100%;line-height: 2;display: flex;height: 100%;align-items: center;justify-content: center;flex-direction: column;color: wheat;flex-wrap: wrap;";
            m.id="taozhiyuMask";
            m.innerHTML='<p>为了便于自动获取提取码</p><p>请在弹出框内点击允许</p><p>否则仅能手动输入/粘贴</p><br><p style="font-size: 14px;line-height: 1;">该信息仅在第一次打开时出现,点击屏幕消失</p>';
            document.querySelector("body").append(m);
            m.onclick=()=>{
                m.remove();
            };
        }
        navigator.permissions.query({name: "clipboard-read"}).then(result => {
            if (result.state == "granted" || result.state == "prompt") {
                autoInputCode( (c,a)=>{
                    if(c){
                        let b=a.match(/(?:密|提取|访问|訪問)[碼码]?\s*[::]?\s*([a-z\d]{4})/);
                        if(!!b){
                            console.log(b[1]);
                            document.querySelector("#accessCode").value=b[1];
                            document.querySelector("#submitBtn").click()
                        }else{
                            console.log("未匹配到常见密码")
                        }
                    }else{
                        console.log("不让我读取剪贴板你就自己粘贴去\n\n╭(╯^╰)╮哼\n\n如果是误操作请到“chrome://settings/content/clipboard”允许脚本读取剪贴板");
                    }
                })
            }else{
                console.log("不让我读取剪贴板你就自己粘贴去\n\n╭(╯^╰)╮哼\n\n如果是误操作请到“chrome://settings/content/clipboard”允许脚本读取剪贴板");
            }
        })
    }
})();