// ==UserScript== // @name 懒人专用,全网VIP视频免费破解去广告、全网音乐直接下载、知乎增强、短视频无水印下载、百度网盘直接下载等多功能工具箱,功能可独立开关。长期更新,放心使用。v5.3 // @namespace lanhaha // @version 5.3.7 // @description 自用多功能脚本工具箱,完全免费、无广告、无需关注公众号,集合了优酷、爱奇艺、腾讯、B站(bilibili)、芒果等全网VIP视频(PC+移动端)免费破解去广告,网易云音乐、QQ音乐、酷狗、酷我、虾米、蜻蜓FM、荔枝FM、喜马拉雅等网站音乐和有声书音频免客户端下载,知乎增强(知乎视频下载、去广告、关键词屏蔽、去除侧边栏等),短视频无水印下载(抖音、快手),百度网盘直接下载,优惠券自动查询等几个自己常用的功能,且功能可独立开关。 // @author lanhaha,syhyz1990,zhmai // @icon data:image/png;base64,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 // @match *://pan.baidu.com/disk/home* // @match *://yun.baidu.com/disk/home* // @match *://pan.baidu.com/disk/main* // @match *://yun.baidu.com/disk/main* // @match *://pan.baidu.com/s* // @match *://yun.baidu.com/s* // @match *://*.youku.com/* // @match *://*.iqiyi.com/* // @match *://*.iq.com/play/* // @match *://*.le.com/ptv/vplay/* // @match *://*v.qq.com/* // @match *://*.tudou.com/listplay/* // @match *://*.tudou.com/albumplay/* // @match *://*.tudou.com/programs/view/* // @match *://*.tudou.com/v* // @match *://*.mgtv.com/b/* // @match *://*tv.sohu.com/* // @match *://*film.sohu.com/album/* // @match *://*.bilibili.com/video/* // @match *://*.bilibili.com/anime/* // @match *://*.bilibili.com/bangumi/play/* // @match *://*.bilibili.com/s/* // @match *://*.pptv.com/show/* // @match *://*.wasu.cn/Play/show* // @match *://*v.yinyuetai.com/video/* // @match *://*v.yinyuetai.com/playlist/* // @match *://item.taobao.com/* // @match *://*detail.tmall.com/* // @match *://*detail.tmall.hk/* // @match *://*item.jd.com/* // @match *://*.yiyaojd.com/* // @match *://*.liangxinyao.com/* // @match *://music.163.com/* // @match *://y.qq.com/* // @match *://i.y.qq.com/* // @match *://*.kugou.com/* // @match *://*.kuwo.cn/* // @match *://kuwo.cn/* // @match *://*.xiami.com/* // @match *://music.taihe.com/song* // @match *://*.1ting.com/player* // @match *://music.migu.cn/v* // @match *://*.lizhi.fm/* // @match *://*.qingting.fm/* // @match *://*.ximalaya.com/* // @match *://*.zhihu.com/* // @match *://*.douyin.com/* // @match *://*.kuaishou.com/* // @exclude *://*.zhmdy.top/* // @exclude *://*.eggvod.cn/* // @connect d.pcs.baidu.com // @connect baidu.com // @connect baidupcs.com // @connect youxiaohou.com // @connect localhost // @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/crypto-js/4.1.1/crypto-js.min.js // @require https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/limonte-sweetalert2/11.4.4/sweetalert2.all.min.js // @original-script https://greasyfork.org/scripts/376078 // @original-author zhmai // @original-license GPL License // @original-script https://github.com/syhyz1990/baiduyun/blob/master/baiduyun.user.js // @original-author youxiaohou // @original-license AGPL License // @original-changes 将强制关注公众号改为非强制。 // @antifeature referral-link 此提示为GreasyFork代码规范要求含有查券功能的脚本必须添加,实际使用无任何强制跳转,代码可查,请知悉。 // @license AGPL License // @grant GM_download // @grant GM_openInTab // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant unsafeWindow // @grant GM_setClipboard // @grant GM_getResourceURL // @grant GM_getResourceText // @grant GM_info // @grant GM_registerMenuCommand // @grant GM_cookie // ==/UserScript== (function() { 'use strict'; /*--config--*/ var config ={ couponUrl:window.location.href, couponHost:window.location.host, zhmApiUrl:'https://www.eggvod.cn/', isMobile:/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent), iconVipTop:360, iconVipPosition : 'left', iconVipWidth : 40, jxCodeInfo : {'in':81516699,'code':4}, couponTimerNum : 100,//100次等于10秒 couponWaitTime : 1500, iconWaitTime : 1000, selectedLeft:'selected', selectedRight:'', videoPlayLineAdd:GM_getValue('videoPlayLineAdd',0), dyVideoDownload:GM_getValue('dyVideoDownload',22), ksVideoDownload:GM_getValue('ksVideoDownload',22), } var {couponUrl, couponHost, zhmApiUrl, isMobile, iconVipTop, iconVipPosition, iconVipWidth, jxCodeInfo, couponTimerNum, couponWaitTime, iconWaitTime, selectedLeft, selectedRight, videoPlayLineAdd, dyVideoDownload, ksVideoDownload } = config; /*--lang--*/ var lang = { set:'设置', iconPosition:'图标位置', playVideo:'视频解析', playMusic:'音乐下载', zhNice:'知乎增强', videoDownload:'视频下载', iconHeight:'图标高度', iconWidth:'图标大小', iconLine:'水平位置', iconWaitTime:'等待时间', iconLeft:'靠左', iconRight:'靠右', tipIconHeight:'默认360,建议1~500', tipIconWidth:'默认40,建议20~50', tipErrorIconHeight:'<图标位置>中的<图标高度>应为1000以内正整数,建议1~500', tipErrorIconWidth:'<图标位置>中的<图标大小>应为100以内正整数,建议20~50', setPlayVideo:'解析设置', playVideoLineAdd:'添加线路', tipPlayVideoLineAdd:'请输入线路名称和解析地址,例:"线路六https://jx.zdy.com/?url=",每线路一行。', zhSet:'知乎设置', zhVideoClose:'屏蔽视频', zhVideoDownload:'视频下载', zhADClose:'屏蔽广告', zhCloseLeft:'关闭侧边栏', zhChangeLink:'链接直接跳转', zhKeywordClose:'屏蔽关键词', tipKeyword:'请输入关键词', dyVideoDownload:'抖音下载', ksVideoDownload:'快手下载', question:'常见问题', qqGroup:'交流群', reward:'打赏', redReward:'红包', thank:'感谢', }; /*--datas--*/ var datas = { getCoupon:[{isOpen:22,web:[ {funcName:"coupon",name:"taobao",node:".J_LinkAdd",match:/item\.taobao\.com/}, {funcName:"coupon",name:"tmall",node:"#J_LinkBasket",match:/detail\.tmall\.com/}, {funcName:"coupon",name:"tmall",node:"#J_LinkBasket",match:/detail\.tmall\.hk/}, {funcName:"coupon",name:"jd",node:"#choose-btns",match:/item\.jd\.com/}, {funcName:"coupon",name:"jd",node:"#choose-btns",match:/\.yiyaojd\.com/}, ]}], jxVideo:[{isOpen:GM_getValue('movieList','22'),web:[ {funcName:"playVideo", node:"#mod_player" ,nodeType:'id' ,match:/https:\/\/v.qq.com\/x\/cover\/[a-zA-Z0-9]+.html/,areaClassName:'mod_episode'}, {funcName:"playVideo", node:"#player-container" ,nodeType:'id' ,match:/https:\/\/v.qq.com\/x\/cover\/[a-zA-Z0-9]+\/[a-zA-Z0-9]+.html/,areaClassName:'mod_episode'}, {funcName:"playVideo", node:".container-player" ,nodeType:'class', match:/v\.qq\.com\/x\/page/,areaClassName:'mod_episode'}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/m\.v\.qq\.com\/x\/m\/play\?cid/}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/m\.v\.qq\.com\/x\/play\.html\?cid=/}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/m\.v\.qq\.com\/play\.html\?cid\=/}, {funcName:"playVideo", node:"#flashbox",nodeType:'id',match:/^https:\/\/www\.iqiyi\.com\/[vwa]\_/,areaClassName:'qy-episode-num'}, {funcName:"playVideo", node:".m-video-player-wrap",nodeType:'class',match:/^https:\/\/m.iqiyi\.com\/[vwa]\_/,areaClassName:'m-sliding-list'}, {funcName:"playVideo", node:".intl-video-wrap",nodeType:'class',match:/^https:\/\/www\.iq\.com\/play\//,areaClassName:'m-sliding-list'}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/m\.youku\.com\/alipay_video\/id_/}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/m\.youku\.com\/video\/id_/}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/v\.youku\.com\/v_show\/id_/}, {funcName:"playVideo", node:"#bilibiliPlayer",nodeType:'id',match:/www\.bilibili\.com\/video/}, {funcName:"playVideo", node:"#player_module",nodeType:'id',match:/www\.bilibili\.com\/bangumi/,areaClassName:'ep-list-wrapper report-wrap-module'}, {funcName:"playVideo", node:".player-container",nodeType:'class',match:/m\.bilibili\.com\/bangumi/,areaClassName:'ep-list-pre-container no-wrap'}, {funcName:"playVideo", node:".mplayer",nodeType:'class',match:/m\.bilibili\.com\/video\//}, {funcName:"playVideo", node:".video-area",nodeType:'class',match:/m\.mgtv\.com\/b/}, {funcName:"playVideo", node:"#mgtv-player-wrap",nodeType:'id',match:/mgtv\.com\/b/,areaClassName:'episode-items clearfix'}, {funcName:"playVideo", node:".x-cover-playbtn-wrap",nodeType:'class',match:/m\.tv\.sohu\.com/}, {funcName:"playVideo", node:"#playerWrap",nodeType:'id',match:/film\.sohu\.com\/album\//}, {funcName:"playVideo", node:"#le_playbox",nodeType:'id',match:/le\.com\/ptv\/vplay\//,areaClassName:'juji_grid'}, //无单独播放页{funcName:"playVideo", node:"j-player",nodeType:'id',match:/m\.le\.com\/vplay_\//}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/play\.tudou\.com\/v_show\/id_/}, {funcName:"playVideo", node:"#pptv_playpage_box",nodeType:'id',match:/v\.pptv\.com\/show\//}, //{funcName:"playVideo", node:"pptv_playpage_box",nodeType:'id',match:/vip\.pptv\.com\/show\//}, //图标未显示{funcName:"playVideo", node:"pplive-player",nodeType:'id',match:/m\.pptv\.com\/show\//}, {funcName:"playVideo", node:"#player",nodeType:'id',match:/vip\.1905.com\/play\//}, ]}], jxMusic:[{isOpen:GM_getValue('musicList','22'),web:[ {funcName:"playMusic",name:'netease',match:/^https?:\/\/music\.163\.com\/#\/(?:song|dj)\?id/}, {funcName:"playMusic",name:'netease',match:/^https?:\/\/y\.music\.163\.com\/m\/(?:song|dj)\?id/}, {funcName:"playMusic",name:'netease',match:/^https?:\/\/music\.163\.com\/(?:song|dj)\?id/}, {funcName:"playMusic",name:'qq',match:/^https?:\/\/y\.qq\.com\/n\/ryqq\/player/}, {funcName:"playMusic",name:'kugou',match:/kugou\.com/}, {funcName:"playMusic",name:'kuwo',match:/kuwo\.cn/}, {funcName:"playMusic",name:'ximalaya',match:/^https?:\/\/www\.ximalaya\.com/} ]}], playLine:[ {"name":"纯净1","url":"https://z1.m1907.cn/?jx=","mobile":1}, {"name":"B站1","url":"https://vip.parwix.com:4433/player/?url=","mobile":1}, {"name":"爱豆","url":"https://jx.aidouer.net/?url=","mobile":1}, {"name":"BL","url":"https://vip.bljiex.com/?v=","mobile":0}, {"name":"冰豆","url":"https://api.qianqi.net/vip/?url=","mobile":0}, {"name":"百域","url":"https://jx.618g.com/?url=","mobile":0}, {"name":"CK","url":"https://www.ckplayer.vip/jiexi/?url=","mobile":0}, {"name":"CHok","url":"https://www.gai4.com/?url=","mobile":1}, {"name":"ckmov","url":"https://www.ckmov.vip/api.php?url="}, {"name":"大幕","url":"https://jx.52damu.com/dmjx/jiexi.php?url=","mobile":0}, {"name":"H8","url":"https://www.h8jx.com/jiexi.php?url=","mobile":0}, {"name":"解析","url":"https://ckmov.ccyjjd.com/ckmov/?url=","mobile":0}, {"name":"解析la","url":"https://api.jiexi.la/?url=","mobile":0}, {"name":"LE","url":"https://lecurl.cn/?url=","mobile":0}, {"name":"老板","url":"https://vip.laobandq.com/jiexi.php?url=","mobile":0}, {"name":"乐多","url":"https://api.leduotv.com/wp-api/ifr.php?isDp=1&vid=","mobile":1}, {"name":"MAO","url":"https://www.mtosz.com/m3u8.php?url=","mobile":0}, {"name":"M3U8","url":"https://jx.m3u8.tv/jiexi/?url=","mobile":0}, {"name":"诺诺","url":"https://www.ckmov.com/?url=","mobile":0}, {"name":"诺讯","url":"https://www.nxflv.com/?url=","mobile":0}, {"name":"OK","url":"https://okjx.cc/?url=","mobile":1}, {"name":"PM","url":"https://www.playm3u8.cn/jiexi.php?url=","mobile":0}, {"name":"盘古","url":"https://www.pangujiexi.cc/jiexi.php?url=","mobile":0}, {"name":"奇米","url":"https://qimihe.com/?url=","mobile":0}, {"name":"全民","url":"https://jx.blbo.cc:4433/?url=","mobile":0}, {"name":"RDHK","url":"https://jx.rdhk.net/?v=","mobile":1}, {"name":"人人迷","url":"https://jx.blbo.cc:4433/?url=","mobile":1}, {"name":"思云","url":"https://jx.ap2p.cn/?url=","mobile":0}, {"name":"思古3","url":"https://jsap.attakids.com/?url=","mobile":1}, {"name":"淘电影","url":"https://jx.vodjx.top/vip/?url=","mobile":0}, {"name":"听乐","url":"https://jx.dj6u.com/?url=","mobile":1}, {"name":"维多","url":"https://jx.ivito.cn/?url=","mobile":0}, {"name":"虾米","url":"https://jx.xmflv.com/?url=","mobile":0}, {"name":"小蒋","url":"https://www.kpezp.cn/jlexi.php?url=","mobile":0}, {"name":"云端","url":"https://sb.5gseo.net/?url=","mobile":0}, {"name":"云析","url":"https://jx.yparse.com/index.php?url=","mobile":0}, {"name":"0523","url":"https://go.yh0523.cn/y.cy?url=","mobile":0}, {"name":"17云","url":"https://www.1717yun.com/jx/ty.php?url=","mobile":0}, {"name":"4K","url":"https://jx.4kdv.com/?url=","mobile":1}, {"name":"8090","url":"https://www.8090g.cn/?url=","mobile":0} ], zhNice:[{isOpen:GM_getValue('zhihuList','22'),web:[ {funcName:'zhNice',match:/^https?:\/\/[a-z]+\.zhihu\.com/} ]}], videoDownload:[{isOpen:GM_getValue('videoDownloadList','22'),web:[ {funcName:'videoDownload',name:'dyVideoDownload',match:/^https?:\/\/www\.douyin\.com\/?.+$/,isWebOpen:dyVideoDownload}, {funcName:'videoDownload',name:'ksVideoDownload',match:/^https?:\/\/www\.kuaishou\.com\/?.+$/,isWebOpen:ksVideoDownload}, ]}], baidu:[{isOpen:GM_getValue('baiduList','22'),web:[ {funcName:'baidu',match:/https?:\/\/pan\.baidu\.com/} ]}], keyCode:[ {code:48,isShift:false,value:'0'}, {code:48,isShift:true,value:')'}, {code:49,isShift:false,value:'1'}, {code:49,isShift:true,value:'!'}, {code:50,isShift:false,value:'2'}, {code:50,isShift:true,value:'@'}, {code:51,isShift:false,value:'3'}, {code:51,isShift:true,value:'#'}, {code:52,isShift:false,value:'4'}, {code:52,isShift:true,value:'$'}, {code:53,isShift:false,value:'5'}, {code:53,isShift:true,value:'%'}, {code:54,isShift:false,value:'6'}, {code:54,isShift:true,value:'^'}, {code:55,isShift:false,value:'7'}, {code:55,isShift:true,value:'&'}, {code:56,isShift:false,value:'8'}, {code:56,isShift:true,value:'*'}, {code:57,isShift:false,value:'9'}, {code:57,isShift:true,value:'('}, {code:70,isShift:false,value:'f'}, {code:70,isShift:true,value:'F'}, {code:74,isShift:false,value:'j'}, {code:74,isShift:true,value:'J'}, {code:75,isShift:false,value:'k'}, {code:75,isShift:true,value:'K'}, {code:76,isShift:false,value:'l'}, {code:76,isShift:true,value:'L'}, ] } var {getCoupon,jxVideo,jxMusic,playLine,zhNice,videoDownload,baidu,keyCode} = datas; /*--create style--*/ var domHead = document.getElementsByTagName('head')[0]; var domStyle = document.createElement('style'); domStyle.type = 'text/css'; domStyle.rel = 'stylesheet'; /*--Class--*/ class BaseClass{ constructor(){ if(GM_getValue('iconPositionSetPage') != 0){ iconVipTop = this.getCookie('iconTop')?this.getCookie('iconTop'):iconVipTop; iconVipPosition = this.getCookie('iconPosition')?this.getCookie('iconPosition'):iconVipPosition; selectedLeft = iconVipPosition=='left'?'selected':''; selectedRight = iconVipPosition=='right'?'selected':''; iconVipWidth = this.getCookie('iconWidth')?this.getCookie('iconWidth'):iconVipWidth; iconWaitTime = GM_getValue('iconWaitTime')?GM_getValue('iconWaitTime')*1000:iconWaitTime; } GM_registerMenuCommand("设置", () => this.menuSet()); } menuSet(){ var _this = this; let menuSetStyle = ` .zhmMask{ z-index:999999999; background-color:#000; position: fixed;top: 0;right: 0;bottom: 0;left: 0; opacity:0.8; } .wrap-box{ z-index:1000000000; position:fixed;;top: 50%;left: 50%;transform: translate(-50%, -200px); width: 300px; color: #555; background-color: #fff; border-radius: 5px; overflow:hidden; font:16px numFont,PingFangSC-Regular,Tahoma,Microsoft Yahei,sans-serif !important; font-weight:400 !important; } .setWrapHead{ background-color:#f24443;height:40px;color:#fff;text-align:center;line-height:40px; } .setWrapLi{ margin:0px;padding:0px; } .setWrapLi li{ background-color: #fff; border-bottom:1px solid #eee; margin:0px !important; padding:12px 20px; display: flex; justify-content: space-between;align-items: center; list-style: none; } .setWrapLiContent{ display: flex;justify-content: space-between;align-items: center; } .setWrapSave{ position:absolute;top:-2px;right:10px;font-size:24px;cursor:pointer } .iconSetFoot{ position:absolute;bottom:0px;padding:10px 20px;width:100%; z-index:1000000009;background:#fef9ef; } .iconSetFootLi{ margin:0px;padding:0px; } .iconSetFootLi li{ display: inline-flex; padding:0px 2px; justify-content: space-between;align-items: center; font-size: 12px; } .iconSetFootLi li a{ color:#555; } .iconSetFootLi a:hover { color:#fe6d73; } .iconSetPage{ z-index:1000000001; position:absolute;top:0px;left:300px; background:#fff; width:300px; height:100%; } .iconSetUlHead{ padding:0px; margin:0px; } .iconSetPageHead{ border-bottom:1px solid #ccc; height:40px; line-height:40px; display: flex; justify-content: space-between; align-items: center; background-color:#fe6d73; color:#fff; font-size: 15px; } .iconSetPageLi{ margin:0px;padding:0px; } .iconSetPageLi li{ list-style: none; padding:8px 20px; } .zhihuSetPage{ z-index:1000000002;position:absolute;top:0px;left:300px;background:#fff;width:300px;height:100%; } .iconSetPageInput{ display: flex !important;justify-content: space-between;align-items: center; } .zhihuSetPageLi{ margin:0px;padding:0px; } .zhihuSetPageLi li{ border-bottom:1px solid #eee;padding:12px 20px;display:block; } .zhihuSetPageContent{ display: flex !important;justify-content: space-between;align-items: center; } li:last-child{ border-bottom:none; } .circular{ width: 40px;height: 20px;border-radius: 16px;transition: .3s;cursor: pointer;box-shadow: 0 0 3px #999 inset; } .round-button{ width: 20px;height: 20px;;border-radius: 50%;box-shadow: 0 1px 5px rgba(0,0,0,.5);transition: .3s;position: relative; } .back{ border: solid #FFF; border-width: 0 3px 3px 0; display: inline-block; padding: 3px;transform: rotate(135deg); -webkit-transform: rotate(135deg);margin-left:10px;cursor:pointer; } .to-right{ margin-left:20px; display: inline-block; padding: 3px;transform: rotate(-45deg); -webkit-transform: rotate(-45deg);cursor:pointer; } .iconSetSave{ font-size:24px;cursor:pointer;margin-right:5px;margin-bottom:4px;color:#FFF; } .zhm_set_page{ z-index:1000000003; position:absolute; top:0px;left:300px; background:#fff; width:300px; height:100%; } .zhm_set_page_header{ border-bottom:1px solid #ccc; height:40px; line-height:40px; display: flex; justify-content: space-between; align-items: center; background-color:#fe6d73; color:#fff; font-size: 15px; } .zhm_set_page_content{ display: flex !important;justify-content: space-between;align-items: center; } .zhm_set_page_list{ margin:0px;padding:0px; } .zhm_set_page_list li{ /*border-bottom:1px solid #ccc;*/ padding:12px 20px; display:block; border-bottom:1px solid #eee; } /*-form-*/ :root { --base-color: #434a56; --white-color-primary: #f7f8f8; --white-color-secondary: #fefefe; --gray-color-primary: #c2c2c2; --gray-color-secondary: #c2c2c2; --gray-color-tertiary: #676f79; --active-color: #227c9d; --valid-color: #c2c2c2; --invalid-color: #f72f47; --invalid-icon: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%20%3Cpath%20d%3D%22M13.41%2012l4.3-4.29a1%201%200%201%200-1.42-1.42L12%2010.59l-4.29-4.3a1%201%200%200%200-1.42%201.42l4.3%204.29-4.3%204.29a1%201%200%200%200%200%201.42%201%201%200%200%200%201.42%200l4.29-4.3%204.29%204.3a1%201%200%200%200%201.42%200%201%201%200%200%200%200-1.42z%22%20fill%3D%22%23f72f47%22%20%2F%3E%3C%2Fsvg%3E"); } .text-input { font-size: 16px; position: relative; right:0px; z-index: 0; } .text-input__body { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: transparent; border: 1px solid var(--gray-color-primary); border-radius: 3px; height: 1.7em; line-height: 1.7; overflow: hidden; padding: 2px 1em; text-overflow: ellipsis; transition: background-color 0.3s; width:55%; font-size:14px; } .text-input__body:-ms-input-placeholder { color: var(--gray-color-secondary); } .text-input__body::-moz-placeholder { color: var(--gray-color-secondary); } .text-input__body::placeholder { color: var(--gray-color-secondary); } *, ::after, ::before { box-sizing: initial !important; } .text-input__body[data-is-valid] { padding-right: 1em; } .text-input__body[data-is-valid=true] { border-color: var(--valid-color); } .text-input__body[data-is-valid=false] { border-color: var(--invalid-color); box-shadow: inset 0 0 0 1px var(--invalid-color); } .text-input__body:focus { border-color: var(--active-color); box-shadow: inset 0 0 0 1px var(--active-color); outline: none; } .text-input__body:-webkit-autofill { transition-delay: 9999s; -webkit-transition-property: background-color; transition-property: background-color; } .text-input__validator { background-position: right 0.5em center; background-repeat: no-repeat; background-size: 1.5em; display: inline-block; height: 100%; left: 0; position: absolute; top: 0; width: 100%; z-index: -1; } .text-input__body[data-is-valid=false] + .text-input__validator { background-image: var(--invalid-icon); } .select-box { box-sizing: inherit; font-size: 16px; position: relative; transition: background-color 0.5s ease-out; width:90px; } .select-box::after { border-color: var(--gray-color-secondary) transparent transparent transparent; border-style: solid; border-width: 6px 4px 0; bottom: 0; content: ""; display: inline-block; height: 0; margin: auto 0; pointer-events: none; position: absolute; right: -72px; top: 0; width: 0; z-index: 1; } .select-box__body { box-sizing: inherit; -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: transparent; border: 1px solid var(--gray-color-primary); border-radius: 3px; cursor: pointer; height: 1.7em; line-height: 1.7; padding-left: 1em; padding-right: calc(1em + 16px); width: 140%; font-size:14px; padding-top:2px; padding-bottom:2px; } .select-box__body[data-is-valid=true] { border-color: var(--valid-color); box-shadow: inset 0 0 0 1px var(--valid-color); } .select-box__body[data-is-valid=false] { border-color: var(--invalid-color); box-shadow: inset 0 0 0 1px var(--invalid-color); } .select-box__body.focus-visible { border-color: var(--active-color); box-shadow: inset 0 0 0 1px var(--active-color); outline: none; } .select-box__body:-webkit-autofill { transition-delay: 9999s; -webkit-transition-property: background-color; transition-property: background-color; } .textarea__body { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: transparent; border: 1px solid var(--gray-color-primary); border-radius: 0; box-sizing: border-box; font: inherit; left: 0; letter-spacing: inherit; overflow: hidden; padding: 1em; position: absolute; resize: none; top: 0; transition: background-color 0.5s ease-out; width: 100%; } .textarea__body:only-child { position: relative; resize: vertical; } .textarea__body:focus { border-color: var(--active-color); box-shadow: inset 0 0 0 1px var(--active-color); outline: none; } .textarea__body[data-is-valid=true] { border-color: var(--valid-color); box-shadow: inset 0 0 0 1px var(--valid-color); } .textarea__body[data-is-valid=false] { border-color: var(--invalid-color); box-shadow: inset 0 0 0 1px var(--invalid-color); } .textarea ._dummy-box { border: 1px solid; box-sizing: border-box; min-height: 240px; overflow: hidden; overflow-wrap: break-word; padding: 1em; visibility: hidden; white-space: pre-wrap; word-wrap: break-word; } .toLeftMove{ nimation:moveToLeft 0.5s infinite; -webkit-animation:moveToLeft 0.5s infinite; /*Safari and Chrome*/ animation-iteration-count:1; animation-fill-mode: forwards; } @keyframes moveToLeft{ from {left:200px;} to {left:0px;} } @-webkit-keyframes moveToLeft /*Safari and Chrome*/{ from {left:200px;} to {left:0px;} } .toRightMove{ nimation:moveToRight 2s infinite; -webkit-animation:moveToRight 2s infinite; /*Safari and Chrome*/ animation-iteration-count:1; animation-fill-mode: forwards; } @keyframes moveToRight{ from {left:0px;} to {left:2000px;} } @-webkit-keyframes moveToRight /*Safari and Chrome*/{ from {left:0px;} to {left:200px;} } `; domStyle .appendChild(document.createTextNode(menuSetStyle)); domHead.appendChild(domStyle); var setListJson= [ {'listName':lang.iconPosition,'setListID':'iconPositionSetPage','setPageID':'movieIconSetPage'}, {'listName':lang.playVideo,'setListID':'movieList','setPageID':'movieVideoSetPage'}, {'listName':lang.playMusic,'setListID':'musicList','setPageID':''}, {'listName':lang.zhNice,'setListID':'zhihuList','setPageID':'zhihuIconSetPage'}, {'listName':lang.videoDownload,'setListID':'videoDownloadList','setPageID':'videoDownloadSetPage'}, ]; var zhihuOptionJson = [{'optionName':lang.zhVideoClose,'optionID':'removeVideo','default':'0'},{'optionName':lang.zhVideoDownload,'optionID':'downloadVideo','default':'22'},{'optionName':lang.zhADClose,'optionID':'removeAD','default':'22'},{'optionName':lang.zhCloseLeft,'optionID':'removeRight','default':'0'},{'optionName':lang.zhChangeLink,'optionID':'changeLink','default':'22'},{'optionName':lang.zhKeywordClose,'optionID':'removeKeyword','default':'0'}]; var playVideoOptionJson = [{'optionName':'添加线路','optionID':'videoPlayLineAdd','default':videoPlayLineAdd}]; var videoDownloadOptionJson = [ {'optionName':lang.dyVideoDownload,'optionID':'dyVideoDownload','default':dyVideoDownload}, {'optionName':lang.ksVideoDownload,'optionID':'ksVideoDownload','default':ksVideoDownload}, ]; var setHtml = "
"; setHtml +="
"; setHtml +="
"; setHtml +=""; setHtml +="
"; setHtml +="
"; setHtml +=""; setHtml +="
"; setHtml += ""; } setHtml +="" setHtml +="
" setHtml +="
"; setHtml +=""; setHtml +="
"; setHtml +="
"; setHtml +="
"; setHtml +=""; setHtml +="
"; } setHtml +="" setHtml +="" setHtml +="
"; setHtml +=""; setHtml +="
"; if(zhihuOptionJson[optionN].optionID == 'removeKeyword'){ var keywordShow; if(GM_getValue('removeKeyword','0') == '22'){ keywordShow = 'block'; }else{ keywordShow = 'none'; } setHtml +="
"; } setHtml +=""; } setHtml +=""; setHtml +=""; setHtml +=""; setHtml +="
"; setHtml +="
"; setHtml +="'; setHtml +='
'; setHtml += ""; if(document.querySelector('#setMask')) return; this.createElement('div','zhmMenu'); let zhmMenu = document.getElementById('zhmMenu'); zhmMenu.innerHTML = setHtml; let timerZhmIcon = setInterval(function(){ if (document.querySelector('#zhmMenu')){ clearInterval(timerZhmIcon); // 取消定时器 let circular = document.querySelectorAll('.circular'); circular.forEach(function(item){ item.addEventListener('click', function(e){ let buttonStyle = item.children[0].style; let left = buttonStyle.left; left = parseInt(left); let listLeftValue; if(left==0){ buttonStyle.left = '22px'; buttonStyle.background = '#fe6d73'; item.style.background='#ffE5E5'; if(item.nextSibling && item.nextSibling.getAttribute('data')){ item.nextSibling.setAttribute('style','border: solid #ccc;border-width: 0 3px 3px 0;') } listLeftValue = 22; }else{ buttonStyle.left = '0px'; buttonStyle.background = '#fff'; item.style.background='#fff'; if(item.nextSibling){ item.nextSibling.setAttribute('style','border: solid #EEE;border-width: 0 3px 3px 0;') } listLeftValue = 0; } let setListID = item.id; if(setListID == 'removeKeyword' && listLeftValue==22){ document.querySelector('#zhihuKeyword').style.display='block'; } if(setListID == 'removeKeyword' && listLeftValue==0){ document.querySelector('#zhihuKeyword').style.display='none'; } if(setListID == 'videoPlayLineAdd' && listLeftValue==22){ document.querySelector('#videoPlayLineAddTextarea').style.display='block'; } if(setListID == 'videoPlayLineAdd' && listLeftValue==0){ document.querySelector('#videoPlayLineAddTextarea').style.display='none'; } GM_setValue(setListID,listLeftValue); }) }); let toRight = document.querySelectorAll('.to-right'); toRight.forEach(function(item){ item.addEventListener('click', function(e){ let left = item.previousSibling.children[0].style.left; left = parseInt(left); if(left != 22) return; let setPageID = item.getAttribute('data'); let pageId = document.getElementById(setPageID); pageId.className='iconSetPage toLeftMove'; }) }) let toBack = document.querySelectorAll('.back'); toBack.forEach(function(item){ item.addEventListener('click', function(e){ let parentDom = item.parentNode.parentNode.parentNode; parentDom.className='iconSetPage toRightMove' }) }) let setSave = document.querySelectorAll('.iconSetSave'); setSave.forEach(function(item){ item.addEventListener('click',()=>{ let iconTop = document.getElementById('iconTop').value; let iconPosition = document.getElementById('iconPosition').value; let iconWidth = document.getElementById('iconWidth').value; let iconWaitTime = document.getElementById('iconWaitTime').value; let playVideoLineText = document.querySelector('#playVideoLineTextarea').value; let playVideoLineLeft = document.querySelector('#videoPlayLineAdd').children[0].style.left; let inputZhKeyword = document.getElementById('inputZhKeyword').value; if(iconTop != ''){ if(!(/(^[1-9][0-9]{0,2}$)/.test(iconTop))){ alert(lang.tipErrorIconHeight); return false; } _this.setCookie('iconTop',iconTop,30) } if(iconPosition != ''){ _this.setCookie('iconPosition',iconPosition,30) } if(iconWaitTime != ''){ GM_setValue('iconWaitTime',iconWaitTime); } if(iconWidth !=''){ if(!(/(^([1-9][0-9]?)$)/.test(iconWidth))){ alert(lang.tipErrorIconWidth); return false; } _this.setCookie('iconWidth',iconWidth,30); } if(GM_getValue('videoPlayLineAdd') == 22){ if(playVideoLineText){ let lineObj = _this.getLine(playVideoLineText); if(lineObj.length>0){ GM_setValue('playVideoLineText',playVideoLineText); }else{ alert('线路输入不正确'); return; } }else{ GM_setValue('playVideoLineText',''); } }else{ GM_setValue('playVideoLineText',playVideoLineText); } if(inputZhKeyword != ''){ GM_setValue('inputZhKeyword',inputZhKeyword); }else{ if(GM_getValue('inputZhKeyword')){ GM_deleteValue('inputZhKeyword'); } } history.go(0); }) }) document.getElementById('iconTop').addEventListener('change',function(){ let iconTop = this.value; if(!(/(^[1-9]\d*$)/.test(iconTop))){ this.setAttribute('data-is-valid','false') }else{ this.setAttribute('data-is-valid','true') } return false; }) document.getElementById('iconWidth').addEventListener('change',function(){ let iconWidth = this.value; if(!(/(^[1-9]\d*$)/.test(iconWidth))){ this.setAttribute('data-is-valid','false') }else{ this.setAttribute('data-is-valid','true') } return false; }) //腾讯视频快捷键冲突 if(couponUrl.match(/v\.qq\.com\/x\/cover/)){ let addLineText =document.querySelector('#playVideoLineTextarea'); addLineText.addEventListener('keydown',function(e){ let startPos = addLineText.selectionStart; let endPos = addLineText.selectionEnd; if (startPos === undefined || endPos === undefined) return; keyCode.forEach(function(item){ if(e.keyCode == item.code && e.shiftKey==item.isShift){ let textValue = addLineText.value; let startValue = textValue.substring(0,startPos); let endValue = textValue.substring(startPos); let allValue = startValue+item.value+endValue; addLineText.value=allValue; addLineText.selectionStart = startPos+1; addLineText.selectionEnd = endPos+1; } }) }) } } }) } createElement(dom,domId){ var rootElement = document.body; var newElement = document.createElement(dom); newElement.id = domId; var newElementHtmlContent = document.createTextNode(''); rootElement.appendChild(newElement); newElement.appendChild(newElementHtmlContent); } request(method,url,data){ let request = new XMLHttpRequest(); return new Promise((resolve,reject)=>{ request.onreadystatechange=function(){ if(request.readyState==4){ if(request.status==200){ resolve(request.responseText); }else{ reject(request.status); } } } request.open(method,url); request.send(data); }) } setCookie(cname,cvalue,exdays){ var d = new Date(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); var expires = "expires="+d.toGMTString(); document.cookie = cname+"="+cvalue+"; "+expires; } getCookie(cname){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i{obj[$1]=$2}); return obj; } getLine(text){ let textArr = text.split('\n'); if(textArr.length > 0){ let lineObj = []; let match = /^(.+)(https?:\/\/.+)$/; textArr.forEach(function(item){ item = item.replace(/\s*,*/g,''); if(!item) return true; let lineMatch = item.match(match); if(lineMatch){ lineObj.push({'name':lineMatch[1].substring(0,4),'url':lineMatch[2]}); }else{ lineObj=[]; return false; } }) return lineObj; } } static getElement(css){ return new Promise((resolve,reject)=>{ let num = 0; let timer = setInterval(function(){ num++ let dom = document.querySelector(css); if(dom){ clearInterval(timer); resolve(dom); }else{ if(num==20){clearInterval(timer);resolve(false);} } },300) }) } } class CouponClass extends BaseClass{ constructor(){ super(); this.divElement = document.createElement("div"); this.divElement.id='zhm_div_s'; } taobao(){ let node = document.querySelector('.J_LinkAdd').parentNode; let className = 'zhm_tab_taobao'; this.getCouponInfo(node,className); } tmall(){ let node = document.querySelector('#J_LinkBasket').parentNode; let className = 'zhm_tab_tmall'; this.getCouponInfo(node,className); } jd(){ setTimeout(()=>{ let jdGoodsId = couponUrl.match(/jd\.com\/(\S*).html/); let node= document.querySelector('#choose-btns'); node.after(this.divElement); this.request('get',`https://zuihuimai.net/vrhr/index_jd.php?goods_id=${jdGoodsId[1]}`).then((result)=>{ document.getElementById('zhm_div_s').innerHTML = result; }) },couponWaitTime) } getCouponInfo(node,className){ setTimeout(()=>{ let goods_id = this.getQueryString('id'); if(!goods_id){console.log('goods_id');return}; node.after(this.divElement); this.request('get',`https://www.zuihuimai.net/vrhr/index.php?goods_id=${goods_id}`).then((result)=>{ document.getElementById('zhm_div_s').innerHTML=result; document.getElementById('zhm_table').className = 'zhm_tab '+className; }) },couponWaitTime); } } class PlayVideoClass extends BaseClass{ constructor(){ super(); } } class PlayMusicClass extends BaseClass{ constructor(){ super(); } } class ZhClass extends BaseClass{ constructor(){ super(); } removeVideo(){ let card = document.querySelectorAll('.Feed'); card.forEach(function(item){ let dataZop = JSON.parse(item.getAttribute('data-za-extra-module')); let video = dataZop.card.content.video_id; if(video){ item.parentNode.style='display:none;'; } }) } removeAD(){ let zhHideAD = `.Pc-card{display:none !important;}.TopstoryItem--advertCard{display:none !important}`; domStyle .appendChild(document.createTextNode(zhHideAD)); domHead.appendChild(domStyle); } downloadVideo(){ window.addEventListener('click',(e)=>{ if(e.target.innerText == '下载'){ var videoId; if(document.querySelector('.ZVideo-player')){ let zVideo = document.querySelector('.ZVideo'); let videoData = JSON.parse(zVideo.getAttribute('data-za-extra-module')); videoId = videoData.card.content.video_id; }else{ let videoUrl = window.location.href; let videoObj = videoUrl.split('?'); videoId = videoObj[0].split('/').pop(); } let url = 'https://lens.zhihu.com/api/v4/videos/'+videoId; this.request('get',url).then((result)=>{ let data = JSON.parse(result); if(data.playlist != undefined){ let play_url = data.playlist.LD.play_url; let videoName = videoId+".mp4"; GM_download(play_url,videoName); }else{ alert('下载失败!'); } }); } }) document.addEventListener('DOMNodeInserted',(e) => { if(!e.relatedNode.querySelector) return; var playBar = e.relatedNode.querySelector(':scope > div:last-child > div:first-child > div:nth-of-type(2)'); if(!playBar || playBar.querySelector('.zhmDownload')) return; var playBut = playBar.querySelector(':scope > div:last-child'); if(!playBut) return; var playButLi = playBut.querySelector('div:first-child'); if(!playButLi) return; var downloadBut = playButLi.cloneNode(true); downloadBut.className = playButLi.className + ' zhmDownload'; if(!downloadBut.querySelector('._1tg8oir')) return; downloadBut.querySelector('._1tg8oir').innerText='下载'; playButLi.before(downloadBut); }) } removeRight(){ let zhFullScreen = `.GlobalSideBar {display: none !important;} .Question-sideColumn{display:none !important} .Topstory-mainColumn{width:100% !important} .Question-mainColumn{width:1000px !important} .css-cazg48{margin: 0px 16px 0px 0px !important;} .QuestionWaiting-mainColumn{width:100% !important;} .css-1j5d3ll{padding-left:10px;} .css-yhjwoe{justify-content: space-between !important;} `; domStyle .appendChild(document.createTextNode(zhFullScreen)); domHead.appendChild(domStyle); } changeLink(){ if(couponUrl.indexOf('target') != -1){ let obj = this.getUrlParams(couponUrl); if(obj.target == undefined) return; let link = decodeURIComponent(obj.target); location.href=link; } } removeKeyword(){ var GMKeyword = GM_getValue('inputZhKeyword','0'); if(GMKeyword == '0' || GMKeyword == '') return; let keyword = GMKeyword.split(','); let content = document.querySelectorAll('.ContentItem'); keyword.forEach(function(item){ content.forEach(function(value){ let dataZop = JSON.parse(value.getAttribute('data-zop')); if(dataZop.title.indexOf(item) != -1){ let itemCard = value.parentNode.parentNode.parentNode; let itemCardClass= itemCard.className; if(itemCardClass.indexOf('TopstoryItem-isRecommend') != -1){ itemCard.style='display:none'; } } }) }) } } class VideoDownloadClass extends BaseClass{ constructor(){ super(); } dyVideoDownload(){ var _this = this; window.addEventListener('load',function(){ async function getControls(){ let videoDom = await BaseClass.getElement('.xg-video-container'); if(!videoDom){ console.log('没有找到DOM');return; } let vsNav = document.querySelector('.fuy_wmct:nth-of-type(5)'); if((vsNav && vsNav.className.indexOf('LXX79le5') != -1) || couponUrl.indexOf('vsdetail') != -1){ console.log('综艺栏目关闭下载');return; } _this.createDyVideoDownload(); let videoPlayDomAll = document.querySelectorAll('video'); let videoIndex = videoPlayDomAll.length>1?videoPlayDomAll.length-2:videoPlayDomAll.length-1; let videoPlayDom = videoPlayDomAll[videoIndex]; videoPlayDom.addEventListener('ended',function(){ //结束 console.log("播放结束"); let autoPlay = document.querySelector('.xg-switch-checked'); if(autoPlay){ getControls(); return; } }, false); document.querySelector('#zhmDouyinDownload').addEventListener('click',function(){ let dataUrl = this.getAttribute('data-url'); let match = /[https]?:?\/\/www\.douyin\.com\/.+\/([0-9]+)/; let video = dataUrl.match(match); let videoId = video[1]; let url = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='+video[1]; let uri = videoDownloadClass.request('get',url).then((result)=>{ let resp = JSON.parse(result); //let playUrl = resp.item_list[0].video.play_addr.url_list[0];//下载有水印 if(resp.item_list.length > 0){ let uriId = resp.item_list[0].video.play_addr.uri; let playUrl = `https://aweme.snssdk.com/aweme/v1/play/?video_id=${uriId}&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_PUBLISH`; let info = document.querySelectorAll('.Nu66P_ba'); let account = info[videoIndex*2].innerText; let titleArr = info[videoIndex*2+1].innerText.split('#'); let title = titleArr[0]?titleArr[0]:titleArr[1]; GM_download(playUrl,title+account+".mp4"); }else{ console.log('API没有获取视频ID'); } }).catch((error)=>{ console.log(error);}) }) return; } getControls(); window.addEventListener("wheel",getControls); window.addEventListener('keydown',function(e){ if(e.code=='ArrowDown' || e.code=='ArrowUp'){ getControls(); } }) async function insertedDom(){ let videoDom = await BaseClass.getElement('video'); if(!videoDom){ console.log('没有找到DOM');return; } videoDom.addEventListener('DOMNodeInserted',(e) => { getControls(); }) } insertedDom(); window.addEventListener('click',getControls); }) } createDyVideoDownload(){ let controlAll = document.querySelectorAll('.xg-right-grid'); let controls = controlAll.length>1?controlAll[controlAll.length-2]:controlAll[controlAll.length-1]; let videoDownloadDom = document.querySelector('#zhmDouyinDownload'); if(videoDownloadDom){ videoDownloadDom.parentNode.parentNode.removeChild(videoDownloadDom.parentNode) } let detailDom = controls.querySelector('xg-icon:nth-of-type(1)'); let xgIcon = detailDom.cloneNode(true); if(xgIcon.children[1] && xgIcon.children[1].className=='xg-tips'){ xgIcon.children[1].innerHTML='下载视频'; } xgIcon.className='xgplayer-detail-entry'; xgIcon.children[0].style='margin-right:16px;'; xgIcon.children[0].setAttribute('id','zhmDouyinDownload'); let linkUrl = xgIcon.children[0].getAttribute('href')?xgIcon.children[0].getAttribute('href'):location.href; xgIcon.children[0].setAttribute('data-url',linkUrl); xgIcon.children[0].removeAttribute('target'); xgIcon.children[0].setAttribute('href','javascript:void(0);'); xgIcon.children[0].innerHTML="
下载
"; let autoPlay = document.querySelector('.xgplayer-autoplay-setting'); autoPlay.after(xgIcon); } ksVideoDownload(){ var _this = this; window.addEventListener('load',function(){ async function getControls(){ let videoDom = await BaseClass.getElement('.player-video'); if(!videoDom){ console.log('没有找到DOM');return; } if(videoDom.getAttribute('src').match(/^blob/)){ console.log('blob视频无法下载');return; } _this.createKsVideoDownload(videoDom); videoDom.addEventListener('playing', function () { //播放中 console.log("播放中"); }); videoDom.addEventListener('ended', function () { //结束 console.log("播放结束"); let autoPlay = document.querySelector('.auto-warpper').getAttribute('autoplay'); if(autoPlay){ getControls(); return; } }, false); document.querySelector('#zhmKsDownload').addEventListener('click',function(){ let playTimeTotal = document.querySelector('.total').innerText; let second = playTimeTotal.match(/(.+):(.+)/); let secondTotal = second[1]*60+parseInt(second[2]); let dataUrl = this.getAttribute('data-url'); let account = document.querySelector('.profile-user-name-title').innerText; let title = document.querySelector('.video-info-title').innerText; let videoFileName = (account && title)?account+'-'+title+'.mp4':new Date().getTime()+'.mp4'; GM_download(dataUrl,videoFileName); /* if(secondTotal<30){ let videoFileName = new Date().getTime()+'.mp4'; GM_download(dataUrl,videoFileName); }else{ window.open(dataUrl); } */ }) } getControls(); document.addEventListener('click',function(e){ getControls(); }) }) } createKsVideoDownload(videoDom){ let match = /^https?:\/\/www\.kuaishou\.com\/(.+)\/.+/; let resp = location.href.match(match); if(!resp || (resp[1] != 'short-video' && resp[1] != 'video')){ console.log('当前不是视频播放页');return; } if(resp[1] == 'short-video'){ let playerArea = document.querySelector('.video-container-player'); let playerAreaWidth = playerArea.style.width.match(/(.+)px/); let playerBarProgress = document.querySelector('.player-bar-progress'); playerBarProgress.style.width = playerAreaWidth[1]-260+'px'; let timeTotal = document.querySelector('.total'); timeTotal.style.right='120px'; } let controls = document.querySelector('.right'); let videoDownloadDom = document.querySelector('#zhmKsDownload'); if(videoDownloadDom){ videoDownloadDom.parentNode.removeChild(videoDownloadDom); } let detailDom = controls.querySelector('div:nth-of-type(1)'); let xgIcon = detailDom.cloneNode(true); let linkUrl = videoDom.getAttribute('src'); xgIcon.setAttribute('data-url',linkUrl); xgIcon.setAttribute('id','zhmKsDownload'); xgIcon.innerHTML="
下载
"; detailDom.before(xgIcon); //重构播放操作按钮 let zhmKsButton = document.querySelector('#zhmKsButton'); //console.log(zhmKsButton); if(zhmKsButton){ //zhmKsButton.parentNode.removeChild(zhmKsButton); return false; } let buttonIcon = detailDom.cloneNode(true); //console.log(buttonIcon); buttonIcon.setAttribute('id','zhmKsButton'); let buttonIconImg = buttonIcon.querySelector('.unmuted-icon'); buttonIconImg.style = 'background: url(https://s2-10623.kwimgs.com/udata/pkg/cloudcdn/img/player-setting.ad1f5ce8.svg) no-repeat'; detailDom.after(buttonIcon); let plSlider = buttonIcon.querySelector('.pl-slider'); plSlider.style='width:auto;padding:10px 10px 25px 10px;'; plSlider.innerHTML = ""; let buttonFour = controls.querySelector('div:nth-of-type(4)'); buttonFour.style.margin='0px'; let autoPlay = document.querySelector('.play-setting-container'); autoPlay.style.margin='0px 40px 0px 0px'; let buttonFive = controls.querySelector('div:nth-of-type(5)'); buttonFive.style.margin='15px 0px'; buttonFive.onmouseover=function(){ setTimeout(function(){ let toolTip = document.querySelector('.kwai-player-rotate-tooltip'); if(toolTip){ toolTip.parentNode.removeChild(toolTip); } },30) } let buttonSix = controls.querySelector('div:nth-of-type(6)'); buttonSix.style.margin='15px 0px'; let toolTip = document.querySelector('.kwai-player-fullscreen-tooltip'); buttonSix.onmouseover=function(){ setTimeout(function(){ let toolTip = document.querySelector('.kwai-player-fullscreen-tooltip'); if(toolTip){ toolTip.parentNode.removeChild(toolTip); } },30) } plSlider.appendChild(buttonFour); plSlider.appendChild(buttonFive); plSlider.appendChild(buttonSix); } } var allWeb = [...getCoupon,...jxVideo,...jxMusic,...zhNice,...videoDownload,...baidu]; var nowWeb=[]; allWeb.forEach(function(item){ if(item.isOpen == 0) return true; item.web.forEach(function(val){ let result = couponUrl.match(val.match); if(result){ nowWeb.push(val); } }) }) if(nowWeb.length==0){ let baseClass = new BaseClass(); console.log('没有匹配该网站或该模块已关闭');return; } let {funcName,match:nowMatch,node:nowNode,name:nowName} = nowWeb[0]; switch(funcName){ case 'coupon': var couponClass = new CouponClass(); couponFunc(); break; case 'playVideo': var playVideoClass = new PlayVideoClass(); playVideoFunc(); break; case 'playMusic': playMusicFunc(); break; case 'zhNice': var zhClass = new ZhClass(); zhNiceFunc(); break; case 'baidu': baiduFunc(); break; case 'videoDownload': var videoDownloadClass = new VideoDownloadClass(); if(nowWeb[0].isWebOpen == 0){ console.log(nowWeb[0].name+'已关闭');return; }else{ videoDownloadClass[nowName](); } break; } function couponFunc(){ var couponStyle =` .zhm_tab{width:400px;border:1px solid #f40;border-collapse:collapse;} .zhm_tab tr:nth-of-type(1){font-size:14px;text-align:center;} .zhm_tab tr th{padding:10px;20px;text-align:center;} .zhm_tab tr td{padding:10px;20px;text-align:center;font-size:14px;} .zhm_tab tr td a{ text-decoration:none;} .zhm_tab_taobao{margin-top:50px;} .zhm_tab_taobao tr:nth-of-type(1){background-color:#f40;color:#FFF;} .zhm_tab_taobao tr td{border:1px solid #e6602d;color:#e6602d;} .zhm_tab_taobao tr td a{color:#e6602d;} .zhm_tab_taobao tr td a b{color:#e6602d;font-weight:800} .zhm_tab_jd {margin-top:0px;margin-bottom:20px;} .zhm_tab_jd tr:nth-of-type(1){background-color:#e4393c;color:#FFF;} .zhm_tab_jd tr td{border:1px solid #e4393c;color:#e4393c;} .zhm_tab_jd tr td a{color:#e4393c;} .zhm_tab_tmall {margin-top:50px;} .zhm_tab_tmall tr:nth-of-type(1){background-color:#ff0036;color:#FFF;} .zhm_tab_tmall tr td{border:1px solid #ff0036;color:#ff0036;} .zhm_tab_tmall tr td a{color:#ff0036;} `; domStyle .appendChild(document.createTextNode(couponStyle)); domHead.appendChild(domStyle); let n=0; let couponTimer = setInterval(function(){ n++; let pageNode = document.querySelector(nowNode) if(pageNode){ clearInterval(couponTimer); couponClass[nowName](); }else{ if(n==couponTimerNum) clearInterval(couponTimer); } },100) } function playVideoFunc(){ if(isMobile){ playLine = playLine.filter(function(item){ return item.mobile; }) } //css let playVideoStyle = ` .zhm_play_vidoe_icon{ padding-top:2px;cursor:pointer; z-index:9999999; display:block; position:fixed;${iconVipPosition}:0px;top:${iconVipTop}px;text-align:center;overflow:visible } .zhm_play_video_wrap{ position:fixed;${iconVipPosition}:${iconVipWidth}px;top:${iconVipTop}px; z-index:9999999; overflow: hidden; width:300px; } .zhm_play_video_line{ width:320px; height:316px; overflow-y:scroll; overflow-x:hidden; } .zhm_play_vide_line_ul{ width:300px; display: flex; justify-content: flex-start; flex-flow: row wrap; list-style: none; padding:0px; margin:0px; } .zhm_play_video_line_ul_li{ padding:4px 0px; margin:2px; width:30%; color:#FFF; text-align:center; background-color:#f24443; box-shadow:0px 0px 10px #fff; font-size:14px; } .zhm_play_video_line_ul_li:hover{ color:#260033; background-color:#fcc0c0 } .zhm_line_selected{ color:#260033; background-color:#fcc0c0 } .zhm_play_video_jx{ width:100%; height:100%; z-index:999999; position: absolute;top:0px;padding:0px; } `; domStyle .appendChild(document.createTextNode(playVideoStyle)); domHead.appendChild(domStyle); //custom add line if(GM_getValue('videoPlayLineAdd')==22 && GM_getValue('playVideoLineText')){ let lineObj = playVideoClass.getLine(GM_getValue('playVideoLineText')); if(lineObj){ playLine = [...lineObj,...playLine]; } } //template:icon,playLine; let playWrapHtml = "