// ==UserScript== // @icon https://pan.baidu.com/m-static/base/static/images/favicon.ico // @name 百度云精简 // @namespace taozhiyu.gitee.io // @version 0.3.4 // @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 // @grant GM_getValue // @grant GM_setValue // @home-url https://greasyfork.org/zh-CN/scripts/422814 // @license GPL-3.0-only // @downloadURL none // ==/UserScript== /**********************************************\ * 移除小尾巴部分修改自https://greasyfork.org/zh-CN/scripts/374100 * 自定义密码部分修改自https://greasyfork.org/zh-CN/scripts/423146 * V 0.3.4 * 悄咪咪修复部分(感觉就只有大萝卜一个)人百度网盘LOGO显示异常的问题(换了个图标) * 修复百度云更新造成的脚本无法倍速播放视频(目前仅有百度云VIP方可使用。。。) * 修复速率调节快捷键的一个bug(目前仅有百度云VIP方可使用。。。) * 添加“画中画”功能(需要浏览器支持),画中画模式快捷键将会失效,全屏自动退出画中画模式 * V 0.3.3 * 植入自定义密码功能(修改自【https://greasyfork.org/zh-CN/scripts/423146】,感谢提供思路,已获得授权) * 优化上述脚本 * 修改默认分享时间为【永久】 * 新增对于“内测提醒”弹窗的关闭支持 * 倍速貌似失效了?算了,有空再看吧 * 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.1,0.15,0.2,0.25,0.3,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 w=unsafeWindow||window; let myvideojs; var $ = $ || window.$ || w.$; const saveInfo=(a)=>{ GM_setValue("BaiduYunBeautify", JSON.stringify(a)); }; //兼容之前的版本,迁移数据并移除 const getInfo=()=>{ return JSON.parse(localStorage.getItem("taozhiyuPanConfig")); }; let oldinfo=(getInfo()&&!!getInfo().isfrist)?getInfo().isfrist:true; localStorage.clear("taozhiyuPanConfig"); let info=GM_getValue("BaiduYunBeautify")?JSON.parse(GM_getValue("BaiduYunBeautify")):{}; if(Object.keys(info).length<3){ !info.SetKey&&(info.SetKey=true); !info.sharePwd&&(info.sharePwd=""); !info.isFristAutoEnterKey&&(info.isFristAutoEnterKey=oldinfo); saveInfo(info) } 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; } .video-js .vjs-playback-rate{ line-height: 2em; font-size: 1.4em; } .vjs-workinghover .vjs-menu-button-popup:hover .vjs-menu{ margin-bottom: 0.67em!important; } `); 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("/share/my")<0){ $(document).on("DOMNodeInserted", ".share-file__link-expired", function() { if ($(".nd-input-share-pwd").length == 0) { setTimeout(()=>{ var o=document.querySelector("#g-select-1"); o.querySelector(".g-select-inner").click() var event = new CustomEvent("mousedown",{bubbles: 'true'}); o.querySelector('#g-select-1 [data-value="0"]').dispatchEvent(event); },200); var html = '
'; html += ' '; $(".share-file__link-expired").after(html); } }); w.require.async("function-widget-1:share/util/newShare/linkSetting.js", function (a) { a.a = a.makePrivatePassword; a.makePrivatePassword = function () { return info.sharePwd ? info.sharePwd : this.a(); }; }); $(document).on("change", ".nd-input-share-pwd", function () { var value = this.value; if (value && !/[^\W_]{4}/.test(value)) { w.require("system-core:system/uiService/tip/tip.js").show({mode: "failure", msg: "提取码不合规范,只能是四位字母数字组合"}); }else{ info.sharePwd=value; saveInfo(info); } }); } if(location.href.indexOf("baidu.com/disk/")>=0){ let id=setInterval(()=>{ document.querySelectorAll(".pdf2word-tip-close-btn").forEach(a=>{a.click()}); document.querySelectorAll(".dialog-close").forEach(a=>{a.click()}); document.querySelectorAll(".close-mask").forEach(a=>{a.click()}); document.querySelectorAll(".common-dialog-close").forEach(a=>{a.click()}); document.querySelectorAll(".wp-guide-dialog-close").forEach(a=>{a.click()}); document.querySelectorAll(".wp-tip-close-btn").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)},5000) 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);}); setTimeout(()=>{clearInterval(id2)},100); },10); }); }else if(location.href.indexOf("play/video")>=0){ const getmyvideo=a=>{ if(!myvideojs)return false; if(!myvideojs.players){ try{ if(!!myvideojs(a))return myvideojs(a);else return false; }catch(e){return false;} }else{ if(!!myvideojs.players[a])return myvideojs.players[a];else return false; } } let id=setInterval(()=>{ myvideojs=myvideojs||w.videoPlayer; if(myvideojs&&!!getmyvideo("html5player")){ clearInterval(id); if(document.pictureInPictureEnabled){ GM_addStyle(` .video-functions-tips{ margin-top: -26px; } `); getmyvideo("html5player").tech_.el_.disablePictureInPicture=false; let li=document.createElement("li"); li.id="PInP_tao"; li.innerHTML='画中画'; document.querySelector("ul.tips-ul.three-items").append(li) document.querySelector("#PInP_tao").onclick=()=>{ var Observer; if (!document.pictureInPictureElement) { Observer= new MutationObserver(function (mutations, instance) { if (document.pictureInPictureElement) { if(getmyvideo("html5player").el_.classList.value.indexOf("vjs-fullscreen")>=0){ // console.log("进入全屏,关闭画中画"); document.exitPictureInPicture().catch(e => console.warn("不会吧不会吧,开启没失败,取消反而失败了?",e)); Observer&&(Observer.disconnect(),Observer=undefined); } }else Observer&&(Observer.disconnect(),Observer=undefined); }); Observer.observe(getmyvideo("html5player").el_, { attributes: true, attributeFilter: ["class"] }); getmyvideo("html5player").tech_.el_.requestPictureInPicture().catch(e=>console.warn("画中画开启失败:",e)); }else{ document.exitPictureInPicture() .catch(e => console.warn("不会吧不会吧,开启没失败,取消反而失败了?",e)); Observer&&(Observer.disconnect(),Observer=undefined); } } }else console.log("很遗憾,不支持画中画功能"); if(!document.querySelector(".level-2,.level-1"))return;//非会员(暂时)不配 let ne=()=>myvideojs.getComponent("Spacer").prototype.createEl(...arguments), Jn=myvideojs.getComponent("Menu"), gr=myvideojs.getComponent("PlaybackRateMenuItem"); function a(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a;a.__proto__=b;};var vr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).updateVisibility(),i.updateLabel(),i.on(e,"loadstart",i.updateVisibility),i.on(e,"ratechange",i.updateLabel),i}a(e,n);var t=e.prototype;return t.createEl=function(){var e=n.prototype.createEl.call(this);return this.labelEl_=ne("div",{className:"vjs-playback-rate-value",innerHTML:"1x"}),e.appendChild(this.labelEl_),e},t.dispose=function(){this.labelEl_=null,n.prototype.dispose.call(this)},t.buildCSSClass=function(){return"vjs-playback-rate "+n.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-playback-rate "+n.prototype.buildWrapperCSSClass.call(this)},t.createMenu=function(){var e=new Jn(this.player()),t=this.playbackRates();if(t)for(var i=t.length-1;0<=i;i--)e.addChild(new gr(this.player(),{rate:t[i]+"x"}));return e},t.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},t.handleClick=function(e){for(var t=this.player().playbackRate(),i=this.playbackRates(),n=i[0],r=0;r为了便于自动获取提取码
请在弹出框内点击允许
否则仅能手动输入/粘贴
该信息仅在第一次打开时出现,点击屏幕消失
'; 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”允许脚本读取剪贴板"); } }) } })();