// ==UserScript== // @icon https://tva1.sinaimg.cn/large/008i3skNgy1gssioj5f67g30400403yc.gif // @name 百度云去广告,快捷键倍速,免VIP解锁倍速、画质!全网独家! // @namespace baiduwangpan.taozhiyu.gitee.io // @version 0.5.0 // @description 删除“复制这段内容后打开百度网盘手机App,操作更方便哦,来自百度会员超级无敌永久svip”,精简部主页广告、邀请,视频添加倍速按钮 // @author 涛之雨 // @require https://cdn.bootcdn.net/ajax/libs/clipboard.js/2.0.6/clipboard.min.js // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.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 // ==/UserScript== /**********************************************\ * 移除小尾巴部分修改自https://greasyfork.org/zh-CN/scripts/374100 * 自定义密码部分修改自https://greasyfork.org/zh-CN/scripts/423146 * 速率、画质等部分修改自videojs官方文档https://videojs.com/ * V 0.5.0 * 删除大量垃圾代码(找到更优解决办法!)虽然不知道是谁举报的脚本,我都代表大家感谢你,没有你我也不会去进行这么大规模修改的! * [相关举报链接](https://greasyfork.org/zh-CN/reports/12664) 因此,直接改了个大版本号。 * 支持[新版界面](https://pan.baidu.com/disk/main?from=oldversion#/index?category=all)的广告拦截、自定义密码、默认分享时长改为无限制 * 随手改了个更酷炫的黑金LOGO * 修改对于旧界面的支持性,更加完善 * 修正对于提取码的匹配,使之更加精准 * 添加定时读取提取码功能,有权限且未获取到正确的提取码时每秒重新获取 * V 0.4.6(未公开) * 修复部分广告弹窗拦截 * 优化部分代码 * V 0.4.5 * 修复“画中画”逻辑错误 * 修复转存文件时界面显示错误 * V 0.4.4 * 大版本更新!!! * 全!网!独!家!支持百度云【免VIP】解锁倍速和画质! * (注:因服务器限制非会员速度,因此非会员会卡顿) * 需要看源码的朋友自行格式化。。。 * 因为太大,把对齐的空格都删掉了(1.69M=>684K) * 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; const killWords = /内测|解压|体验|设备|专(属|享)|助手/; const changeFavicon = link => { let $favicon = document.querySelector('link[rel="shortcut icon"]'); let $favicon1 = document.querySelector('link[rel="icon"]'); $favicon?$favicon.href = link:""; $favicon1?$favicon1.href = link:""; if(!($favicon||$favicon1)){ $favicon = document.createElement("link"); $favicon.rel = "icon"; $favicon.href = link; document.head.appendChild($favicon); } }; setTimeout(()=>{ //修改logo changeFavicon("https://tva1.sinaimg.cn/large/008i3skNgy1gssioj5f67g30400403yc.gif"); },100); 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); !info.isOldSDK && (info.isOldSDK = false); saveInfo(info) } GM_addStyle(`.phone-banner, .button-badge, .wp-share-file__link-ad, .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, .web-header-ad-item, .wp-disk-header__right-item.company-cert, .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: 99px 0!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); }); } function checkmodule(argument) { var moduleJson = { "(": ")", "[": "]", "{": "}", "\'": "\'", "\"": "\"" }; var testStr = argument; var tempSaveArray = testStr.replace(/\\./g, "").match(/['"\[\]\(\)\{\}]/g); if (tempSaveArray.length !== 0) { var isdan = false; var isshuang = false; for (var j = 0; j < tempSaveArray.length; j < 0 ? j = 0 : j++) { if (j > 0 && moduleJson[tempSaveArray[j - 1]] !== undefined && moduleJson[tempSaveArray[j - 1]] == tempSaveArray[j]) { tempSaveArray.splice(j - 1, 2); j -= 2; isdan = false; isshuang = false; continue; } if (isdan || isshuang) { var ischanged = false; if (isdan) { tempSaveArray.splice(j, 1); if (tempSaveArray[j] === "\'") { isdan = false; } ischanged = true; } if (isshuang) { tempSaveArray.splice(j, 1); if (tempSaveArray[j] === "\"") { isshuang = false; } ischanged = true; } if (ischanged) { j--; continue; } } else if (tempSaveArray[j] == "\"") { isshuang = true; } else if (tempSaveArray[j] == "\'") { isdan = true; } } if (tempSaveArray.length) { return false; } else { return true; } } else { return true; } } function retmatchtimes(i, endchar) { var txt = "([^" + endchar + "]*" + endchar + "){" + String(i) + "}"; return txt; } function getFullFunctions(argument, exp, endchar = "\\}") { var matchingtimes = 0; try { var ret = ""; while (matchingtimes <= 1000) { matchingtimes++; var tmp = argument.match(new RegExp(exp + retmatchtimes(matchingtimes, endchar), "gm")); if (tmp === null) break; if (checkmodule(tmp[0])) { ret = tmp[0]; break; } } return ret; } catch (e) { console.log(e); return ""; } } if (location.href.indexOf("/share/my") < 0) { if (location.href.indexOf("disk/main") > 0) { w.taozhiyugetpass = a => { return info.sharePwd?info.sharePwd:a; }; w.webpackJsonp.tao = w.webpackJsonp.push; w.webpackJsonp.push = (a) => { for (var x in a[1]) { var e = a[1][x].toString(); if (e.indexOf("createShareLink") >= 0) { var b = getFullFunctions(e, "createShareLink\\s*:\\s*function\\s*\\([^\\)]+\\)\\s*\\{"), c = b.replace(/pwd\s*:\s*\w+/, a => a.replace(/\w+$/, a => `window.taozhiyugetpass(${a})`)); var d = e.match(/function\s*\(([^,]+),([^,]+),([^)]+)\)/); e = e.replace(b, c);//植入自定义密码 e=e.replace(/expiredTime\s*:\s*\d/,"expiredTime:0");//默认无限时长 a[1][x] = new Function(d[1], d[2], d[3], e.substring(e.indexOf("{") + 1, e.length - 1)); break; } } w.webpackJsonp.tao(a); }; } else { 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 && w.require("system-core:system/uiService/tip/tip.js").show({ mode: "failure", msg: "提取码不合规范,只能是四位字母数字组合" }); } else { info.sharePwd = value; saveInfo(info); } }); [".share-file__link-expired",".wp-share-file__link-expired"].forEach(x=>{ $(document).on("DOMNodeInserted",x , ()=> { if ($(".nd-input-share-pwd").length == 0) { setTimeout(() => { var o= document.querySelector("#g-select-1"); if( o!==null){ 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 += ''; $(x).after(html); } }); }); } if (location.href.indexOf("baidu.com/disk") >= 0) { let id1 = true, id2 = true, id3 = true; let id = setInterval(() => { //内测 if (id1 && document.querySelector(".wp-guide-dialog-content-title") && document.querySelector(".wp-guide-dialog-content-title").innerText.match(killWords)) { document.querySelector(".wp-guide-dialog-close").click(); id1 = false; } //企业用户专享「客户极速下载券」 if (id2 && document.querySelector(".nd-dialog-cert__header-title") && document.querySelector(".nd-dialog-cert__header-title").innerText.match(killWords)) { document.querySelector(".nd-dialog-cert__header-title").parentElement.parentElement.parentElement.parentElement.querySelector(".u-dialog__headerbtn").click(); id1 = false; } //设备 if (id3 && document.querySelector(".wp-aside-nav-bubble-title") && document.querySelector(".wp-aside-nav-bubble-title").innerText.match(killWords)) { document.querySelector(".wp-aside-nav-bubble-close").click(); id1 = false; } if (!id1 && !id2 && !id3) clearInterval(id); // 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);}}); }, 10); setTimeout(() => { clearInterval(id) }, 20000) 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) { var alreadytoast = false; let isVIP = w.require("base:widget/vip/vip.js").getVipValue() > 0; let killedVIP = false; w.require.async("file-widget-1:videoPlay/HTML5Player/HTML5Player.js", (a) => { a.prototype.antiSpam = () => {}; }) var Myasync = setInterval(() => { w.require.async("file-widget-1:videoPlay/context.js", function(a) { var tmpContext = a.getContext(); if (!tmpContext) { return } a.getContext().locals.set("is_svip", 1); a.getContext().locals.set("vip_level", "∞"); if (tmpContext.useNewSDK !== undefined) { tmpContext.useNewSDK = !info.isOldSDK; a.setContext(tmpContext); clearInterval(Myasync); } }); }, 100); const getmyvideo = a => { if (!myvideojs) return false; if (!myvideojs.players) { if (myvideojs.getPlayers&&myvideojs.getPlayers()) { if (!!myvideojs.getPlayers()[a]) return myvideojs.getPlayers()[a]; else return false; } else { 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; } } function loadscript(url) { var script = document.createElement("script"); script.type = "text/javacript"; script.src = url; document.body.appendChild(script); } !isVIP && w.require("system-core:system/uiService/tip/tip.js").show({ mode: "loading", msg: `等待广告加载结束` }); let hasremoved=false,id = setInterval(() => { if (myvideojs = myvideojs || w.videoPlayer) { !isVIP &&!hasremoved&&(loadscript("https://pannss.bdstatic.com/m-static/base/thirdParty/videojs/_nomd5_nomod/video_20210315.js"),hasremoved=true); if (!!getmyvideo("html5player")) { let vid = getmyvideo("html5player").tag || getmyvideo("html5player").tech_.el_; clearInterval(id); if (document.pictureInPictureEnabled) { GM_addStyle(` .video-functions-tips{ margin-top: -69px; }`); vid.disablePictureInPicture = false; let li = document.createElement("li"); li.id = "ChangeSDK"; li.innerHTML = `切至${info.isOldSDK?"新":"旧"}版`; document.querySelector("ul.tips-ul.three-items").append(li) document.querySelector("#ChangeSDK").onclick = () => { info.isOldSDK = !info.isOldSDK; saveInfo(info); setTimeout(() => { location.reload() }, 1000) } 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"] }); vid.requestPictureInPicture().catch(e => console.warn("画中画开启失败:", e)); } else { document.exitPictureInPicture() .catch(e => console.warn("不会吧不会吧,开启没失败,取消反而失败了?", e)); Observer && (Observer.disconnect(), Observer = undefined); } } } else console.log("很遗憾,不支持画中画功能"); if (info.isOldSDK) { var createEl = myvideojs.createEl, Menu = myvideojs.getComponent("Menu"), PlaybackRateMenuItem = myvideojs.getComponent("PlaybackRateMenuItem"); function inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } var PlaybackRateMenuButton = function (_MenuButton) { inheritsLoose(PlaybackRateMenuButton, _MenuButton); function PlaybackRateMenuButton(player, options) { var _this; _this = _MenuButton.call(this, player, options) || this; _this.updateVisibility(); _this.updateLabel(); _this.on(player, 'loadstart', _this.updateVisibility); _this.on(player, 'ratechange', _this.updateLabel); return _this; } var _proto = PlaybackRateMenuButton.prototype; _proto.createEl = function () { var el = _MenuButton.prototype.createEl.call(this); this.labelEl_ = createEl('div', { className: 'vjs-playback-rate-value', innerHTML: '1x' }); el.appendChild(this.labelEl_); return el; }; _proto.dispose = function dispose() { this.labelEl_ = null; _MenuButton.prototype.dispose.call(this); }; _proto.buildCSSClass = function buildCSSClass() { return "vjs-playback-rate " + _MenuButton.prototype.buildCSSClass.call(this); }; _proto.buildWrapperCSSClass = function buildWrapperCSSClass() { return "vjs-playback-rate " + _MenuButton.prototype.buildWrapperCSSClass.call(this); }; _proto.createMenu = function createMenu() { var menu = new Menu(this.player()); var rates = this.playbackRates(); if (rates) { for (var i = rates.length - 1; i >= 0; i--) { menu.addChild(new PlaybackRateMenuItem(this.player(), { rate: rates[i] })); } } return menu; }; _proto.updateARIAAttributes = function updateARIAAttributes() { this.el().setAttribute('aria-valuenow', this.player().playbackRate()); }; _proto.handleClick = function handleClick(event) { var currentRate = this.player().playbackRate(); var rates = this.playbackRates(); var newRate = rates[0]; for (var i = 0; i < rates.length; i++) { if (rates[i] > currentRate) { newRate = rates[i]; break; } } this.player().playbackRate(newRate); }; _proto.playbackRates = function playbackRates() { return isVIP ? [0.5, 0.75, 1, 1.5, 2, 2.7, 4] : [0.5, 0.75, 1, 1.5, 2, 3]; }; _proto.playbackRateSupported = function playbackRateSupported() { return this.player().tech_ && this.player().tech_.featuresPlaybackRate && this.playbackRates() && this.playbackRates().length > 0; }; _proto.updateVisibility = function updateVisibility(event) { if (this.playbackRateSupported()) { this.removeClass('vjs-hidden'); } else { this.addClass('vjs-hidden'); } }; _proto.updateLabel = function updateLabel(event) { if (this.playbackRateSupported()) { this.labelEl_.innerHTML = "X"+this.player().playbackRate(); } }; return PlaybackRateMenuButton; }(myvideojs.getComponent('MenuButton')); PlaybackRateMenuButton.prototype.controlText_ = isVIP ? "只是为了添加快捷键才替换的官方按钮" : "播放速率,\n涛之雨独家解锁VIP\n非VIP服务器限速,因此最大速率为3倍,\n购买百度云会员解锁更高倍率(可以通过快捷键调整尝试改高)"; myvideojs.registerComponent('Myplayback', PlaybackRateMenuButton); getmyvideo("html5player").controlBar.removeChild('playbackRateMenu'); if (!document.querySelector(".level-2,.level-1")) { //会员不用等待广告 var aid = setInterval(() => { if (!getmyvideo("html5-werbung-player") || getmyvideo("html5-werbung-player").el_.classList.value.indexOf("vjs-paused") >= 0) { clearInterval(aid); getmyvideo("html5player").controlBar.addChild('Myplayback', {}, 6); } }, 500); } else { GM_addStyle(` .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; }`); getmyvideo("html5player").controlBar.addChild('Myplayback', {}, 6); } } 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.1,0.15,0.2,0.25,0.3,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 = getmyvideo("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.1, 0.15, 0.2, 0.25, 0.3, 0.5, 0.6, 0.8, 0.9])[k - 49]; else if (k === 189) p -= 0.1; else if (k === 187) p += 0.1; getmyvideo("html5player").tech_.setPlaybackRate(parseFloat(p.toFixed(2))); setTimeout(() => { safeTime = false }, 50); } getmyvideo("html5player").el_.onmouseenter = a => { let b = a.target; b.classList.remove("vjs-user-inactive"); b.classList.add("vjs-user-active") }; getmyvideo("html5player").el_.onmouseleave = a => { let b = a.target; b.classList.add("vjs-user-inactive"); b.classList.remove("vjs-user-active") }; w.require("system-core:system/uiService/tip/tip.js").show({ vipType: "svip", mode: "success", msg: `涛之雨插件加载成功!敬请享受快捷键、画中画${isVIP?"":"、解锁倍速和高画质的快感!"}` }); } } }, 500); } else if (location.href.indexOf("share/init") >= 0) { if (info.isFristAutoEnterKey) { info.isFristAutoEnterKey = 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 = '

为了便于自动获取提取码

请在弹出框内点击允许

否则仅能手动输入/粘贴


该信息仅在第一次打开时出现,点击屏幕消失

'; document.querySelector("body").append(m); m.onclick = () => { m.remove(); }; } let autoCheck=setInterval(()=>{ navigator.permissions.query({ name: "clipboard-read" }).then(result => { if (result.state == "granted" || result.state == "prompt") { autoInputCode((c, a) => { if (c) { let b; if(/^\s*[a-z\d]{4}\s*$/.test(a))b=a; else b= a.match(/(?:密|提取|访问|訪問)[碼码]?\s*[::]?\s*([a-z\d]{4})/); if (!!b) { b=typeof b==="string"?b:b[1]; b=b.replace(/\s*/g,""); console.log("匹配到密码:", b); clearInterval(autoCheck); document.querySelector("#accessCode").value = b; document.querySelector("#submitBtn").click() } else { console.log("未匹配到常见密码") } } else { clearInterval(autoCheck); console.log("不让我读取剪贴板你就自己粘贴去\n\n╭(╯^╰)╮哼\n\n如果是误操作请到“chrome://settings/content/clipboard”允许脚本读取剪贴板"); } }) } else { clearInterval(autoCheck); console.log("不让我读取剪贴板你就自己粘贴去\n\n╭(╯^╰)╮哼\n\n如果是误操作请到“chrome://settings/content/clipboard”允许脚本读取剪贴板"); } }); },1000); } })();