// ==UserScript== // @name 懒人专用,全网VIP视频免费破解去广告、全网音乐直接下载、知乎增强、短视频无水印下载等多功能工具箱,功能可独立开关。长期更新,放心使用。v6 // @name:zh 懒人专用,全网VIP视频免费破解去广告、全网音乐直接下载、知乎增强、短视频无水印下载等多功能工具箱,功能可独立开关。长期更新,放心使用。v6 // @namespace lanhaha // @version 7.0.1 // @description 自用多功能脚本工具箱,完全免费、无广告、无需关注公众号,集合了优酷、爱奇艺、腾讯、B站(bilibili)、芒果等全网VIP视频(PC+移动端)免费破解去广告,网易云音乐、QQ音乐、酷狗、酷我、虾米、蜻蜓FM、荔枝FM、喜马拉雅等网站音乐和有声书音频免客户端下载,知乎增强(知乎视频下载、去广告、关键词屏蔽、去除侧边栏等),视频无水印下载(bilibili、抖音、快手、西瓜、youtube),网站夜间模式等几个自己常用的功能,且功能可独立开关。 // @description:zh 自用多功能脚本工具箱,完全免费、无广告、无需关注公众号,集合了优酷、爱奇艺、腾讯、B站(bilibili)、芒果等全网VIP视频(PC+移动端)免费破解去广告,网易云音乐、QQ音乐、酷狗、酷我、虾米、蜻蜓FM、荔枝FM、喜马拉雅等网站音乐和有声书音频免客户端下载,知乎增强(知乎视频下载、去广告、关键词屏蔽、去除侧边栏等),视频无水印下载(bilibili、抖音、快手、西瓜、youtube),网站夜间模式等几个自己常用的功能,且功能可独立开关。 // @author lanhaha // @icon data:image/png;base64,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 // @match *://*/* // @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/crypto-js/4.1.1/crypto-js.min.js // @require https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/qrcodejs/1.0.0/qrcode.js // @antifeature referral-link 此提示为GreasyFork代码规范要求含有查券功能的脚本必须添加,实际使用无任何强制跳转,代码可查,请知悉。 // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_setValue // @grant GM_getValue // @grant GM_listValues // @grant GM_deleteValue // @grant GM_download // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @connect iesdouyin.com // @connect 47.99.158.118 // @connect api.typechrome.com // @connect gitlab.com // @exclude *://*.gtimg.cn/* // @exclude *://v.qq.com/wasm-kernel* // ==/UserScript== (function() { 'use strict'; var domHead = document.getElementsByTagName('head')[0]; var domStyle = document.createElement('style'); domStyle.type = 'text/css'; domStyle.rel = 'stylesheet'; var isMobile = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent); if(isMobile){ let playLine = [ {"name":"纯净1","url":"https://im1907.top/?jx="}, {"name":"B站1","url":"https://jx.jsonplayer.com/player/?url="}, {"name":"爱豆","url":"https://jx.aidouer.net/?url="}, {"name":"听乐","url":"https://jx.dj6u.com/?url="}, {"name":"YT","url":"https://jx.yangtu.top/?url="} ]; let useWeb = ['m.bilibili.com','youku.com','www.youku.com','m.youku.com','3g.v.qq.com','m.v.qq.com','m.iqiyi.com','m.mgtv.com','m.tv.sohu.com','m.1905.com','m.pptv.com','m.le.com']; if(useWeb.indexOf(location.host) == -1){ console.log('不是应用网站');return; } function 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; } function getCookie(cname){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i${item.name}`; }) playWrapHtml +=""; let playJxHtml = "
"; playJxHtml += "
"; let jxVideoData = [ {funcName:"playVideo", node:"#player",match:/m\.v\.qq\.com\/x\/play\.html\?cid=/,areaClassName:'slider_box'}, {funcName:"playVideo", node:"#player",match:/m\.v\.qq\.com\/play\.html\?cid\=/,areaClassName:'slider_box'}, {funcName:"playVideo", node:"#player",match:/m\.v\.qq\.com\/cover\/.*html/,areaClassName:'slider_box'}, {funcName:"playVideo", node:"#player",match:/https?:\/\/m\.v\.qq\.com\/x\/m\/play\?.*cid.*/,areaClassName:'slider_box'}, {funcName:"playVideo", node:"#player",match:/3g\.v\.qq\.com\/x\/m\/play\?cid=.*/,areaClassName:'slider_box'}, {funcName:"playVideo", node:".m-video-player-wrap",match:/^https:\/\/m.iqiyi\.com\/[vwa]\_/,areaClassName:'m-sliding-list'}, {funcName:"playVideo", node:".intl-video-wrap",match:/^https:\/\/www\.iq\.com\/play\//,areaClassName:'m-sliding-list'}, {funcName:"playVideo", node:"#player",match:/m\.youku\.com\/alipay_video\/id_/,areaClassName:''}, {funcName:"playVideo", node:"#player",match:/m\.youku\.com\/video\/id_/,areaClassName:''}, {funcName:"playVideo", node:".player-container",nodeType:'class',match:/m\.bilibili\.com\/bangumi/,areaClassName:'ep-list-pre-body'}, {funcName:"playVideo", node:".mplayer",nodeType:'class',match:/m\.bilibili\.com\/video\//,areaClassName:'ep-list-pre-body'}, {funcName:"playVideo", node:".video-area",nodeType:'class',match:/m\.mgtv\.com\/b/,areaClassName:'clearfix'}, {funcName:"playVideo", node:"#le_playbox",nodeType:'id',match:/m\.le\.com\/ptv\/vplay\//,areaClassName:'sideslip_slide'}, {funcName:"playVideo", node:"#j-player",nodeType:'id',match:/m\.le\.com\/vplay/,areaClassName:'juji'}, {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:"#player",nodeType:'id',match:/vip\.1905.com\/play\//}, {funcName:"playVideo", node:"#vodPlayer",nodeType:'id',match:/www\.1905.com\/vod\/play\//}, ]; createElement('div','zhmIcon'); let zhmPlay = document.getElementById('zhmIcon'); zhmPlay.innerHTML = playWrapHtml; let jxVideoWeb = jxVideoData.filter(function(item){ return location.href.match(item.match); }) document.querySelector('#zhmlogo').addEventListener('click',function(){ let jxVideoWeb = jxVideoData.filter(function(item){ return location.href.match(item.match); }) if(jxVideoWeb.length == 0){ toast('请在视频播放页点击图标'); }else{ var {funcName,match:nowMatch,node:nowNode,name:nowName} = jxVideoWeb[0]; let playLineDiv = document.querySelector('.zhm_play_video_wrap'); let playShow = playLineDiv.style.display; playShow == 'none'? playLineDiv.style.display = 'block':playLineDiv.style.display = 'none'; var playLineTd = document.querySelectorAll('.playLineTd'); playLineTd.forEach(function(item){ item.addEventListener('click',function(){ playLineTd.forEach(function(e){ e.setAttribute('class','playLineTd zhm_play_video_line_ul_li'); }) this.setAttribute('class','playLineTd zhm_play_video_line_ul_li zhm_line_selected'); setCookie('playLineAction',this.getAttribute('url'),30); let nowWebNode = document.querySelector(nowNode); if(nowWebNode){ nowWebNode.innerHTML = playJxHtml; let playIframe = document.querySelector('#playIframe'); playIframe.src= item.getAttribute('url')+location.href; }else{ console.log('视频网站结点不存在'); } }) }) let videoSelect = document.querySelector('.'+jxVideoWeb[0].areaClassName); videoSelect.addEventListener('click',function(e){ setTimeout(function(){ location.href=location.href; },1000) }); return false; } }) let timer = setInterval(function(){ let jxVideoWeb = jxVideoData.filter(function(item){ return location.href.match(item.match); }) if(jxVideoWeb.length>0){ let videoSelect = document.querySelector('.'+jxVideoWeb[0].areaClassName); if(videoSelect){ videoSelect.addEventListener('click',function(e){ setTimeout(function(){ location.href=location.href; },1000) }); } } },1000) } playVideoFunc(); }else{ var Config ={ couponUrl:window.location.href, couponHost:window.location.host, webUrl:'http://music.liuzhijin.cn/', iconVipTop:360, iconVipPosition : 'left', iconVipWidth : 40, couponTimerNum : 100, couponWaitTime : 100, iconWaitTime : 100, iconVipOpacity:100, selectedLeft:'selected', selectedRight:'', videoPlayLineAdd:GM_getValue('videoPlayLineAdd',0), dyVideoDownload:GM_getValue('dyVideoDownload',22), ksVideoDownload:GM_getValue('ksVideoDownload',22), xiguaVideoDownload:GM_getValue('xiguaVideoDownload',22), biliVideoDownload:GM_getValue('biliVideoDownload',22), youtubeVideoDownload:GM_getValue('youtubeVideoDownload',22), } var {couponUrl, couponHost, webUrl, iconVipTop, iconVipPosition, iconVipWidth, iconVipOpacity, couponTimerNum, couponWaitTime, iconWaitTime, selectedLeft, selectedRight, videoPlayLineAdd, dyVideoDownload, ksVideoDownload, xiguaVideoDownload, biliVideoDownload, youtubeVideoDownload } = Config; var lang = { set:'设置', iconPosition:'图标位置', playVideo:'视频解析', playMusic:'音乐下载', zhNice:'知乎增强', videoDownload:'视频下载', iconHeight:'图标高度', iconWidth:'图标大小', iconLine:'水平位置', iconWaitTime:'等待时间', iconLeft:'靠左', iconRight:'靠右', tipIconHeight:'默认360,建议1~500', tipIconWidth:'默认40,建议20~50', tipIconOpacity:'请填写0-100的整数', tipErrorIconHeight:'<图标位置>中的<图标高度>应为1000以内正整数,建议1~500', tipErrorIconWidth:'<图标位置>中的<图标大小>应为100以内正整数,建议20~50', tipErrorIconOpacity:'填写数字不正确', setPlayVideo:'解析设置', playVideoLineAdd:'站外解析', tipPlayVideoLineAdd:'请填入线路名称和地址,中间用半角逗号隔开,每线路一行。', zhSet:'知乎设置', zhVideoClose:'屏蔽视频', zhVideoDownload:'视频下载', zhADClose:'屏蔽广告', zhCloseLeft:'关闭侧边栏', zhChangeLink:'链接直接跳转', specialColumn:'标记文章', videoTitle:'标记视频', zhKeywordClose:'屏蔽关键词', tipKeyword:'请输入关键词,用","号隔开', authorNameClose:'屏蔽用户', tipAuthorName:'请输入用户名,用","号隔开', yanxuanClose:'屏蔽盐选', dyVideoDownload:'抖音下载', ksVideoDownload:'快手下载', xiguaVideoDownload:'西瓜下载', biliVideoDownload:'B站 (bilibili) 下载', youtubeVideoDownload:'youtube下载', scriptsinstall:'脚本安装', scriptsuse:'使用方法', question:'常见问题', tggroup:'Telegram' }; var datas = { getCoupon:[{isOpen:22,web:[ {funcName:"coupon",name:"taobao",match:/item\.taobao\.com/}, {funcName:"coupon",name:"tmall",match:/^https?:\/\/detail\.tmall\.com/}, {funcName:"coupon",name:"tmallcaoshi",match:/^https?:\/\/chaoshi\.detail\.tmall\.com\//}, {funcName:"coupon",name:"tmalhk",match:/^https?:\/\/detail\.tmall\.hk/}, {funcName:"coupon",name:"taobaoSearch",match:/^https?:\/\/s\.taobao\.com\/search\.*/}, {funcName:"coupon",name:"jd",match:/item\.jd\.com\/\d{5}/}, {funcName:"coupon",name:"jd",match:/item\.yiyaojd\.com\/\d{5}/}, {funcName:"coupon",name:"jd",match:/npcitem\.jd\.hk\/\d{5}/}, {funcName:"coupon",name:"vip",match:/detail\.vip\.com\/detail.*/}, ]}], jxVideo:[{isOpen:GM_getValue('movieList','22'),web:[ {funcName:"playVideo",match:/https?:\/\/v\.qq\.com/,name:'qqPC'}, {funcName:"playVideo", match:/https?:\/\/m\.v\.qq\.com/,name:'qqMobile'}, {funcName:"playVideo", match:/^https?:\/\/www\.iqiyi\.com/,name:'iqiyiPc'}, {funcName:"playVideo", match:/^https?:\/\/www\.iq\.com/}, {funcName:"playVideo", node:".m-video-player-wrap",match:/^https?:\/\/m.iqiyi\.com/,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", match:/^https?:\/\/.*youku\.com/}, {funcName:"playVideo", match:/^https?:\/\/www\.bilibili\.com/}, {funcName:"playVideo", match:/^https?:\/\/m\.bilibili\.com/}, {funcName:"playVideo", node:".video-area",nodeType:'class',match:/m\.mgtv\.com\/b/}, {funcName:"playVideo", match:/mgtv\.com/,areaClassName:'episode-items clearfix'}, {funcName:"playVideo", node:".x-cover-playbtn-wrap",nodeType:'class',match:/.tv\.sohu\.com/}, {funcName:"playVideo", node:".x-cover-playbtn-wrap",nodeType:'class',match:/m\.tv\.sohu\.com/}, {funcName:"playVideo", node:"#playerWrap",nodeType:'id',match:/film\.sohu\.com/}, {funcName:"playVideo", match:/^https?:\/\/(.+\.)?tudou\.com/}, {funcName:"playVideo",match:/^https?:\/\/(.+\.)?le\.com/}, {funcName:"playVideo",match:/^https?:\/\/(.+\.)?pptv\.com/}, {funcName:"playVideo",match:/^https?:\/\/(.+\.)?1905\.com/}, ]}], jxMusic:[{isOpen:GM_getValue('musicList','22'),web:[ {funcName:"playMusic",name:'netease',match:/^https?:\/\/music\.163\.com/,tip:'请在音乐单曲页点击图标下载'}, {funcName:"playMusic",name:'qq',match:/^https?:\/\/y\.qq\.com/,tip:'请点击播放需要下载的歌曲,在播放页点击图标下载'}, {funcName:"playMusic",name:'kugou',match:/kugou\.com/,tip:'请点击播放需要下载的歌曲,然后在网页下方播放器内点击"下载"'}, {funcName:"playMusic",name:'kuwo',match:/kuwo\.cn/,tip:'请点击播放需要下载的歌曲,然后在网页下方播放器内点击"下载"'}, {funcName:"playMusic",name:'ximalaya',match:/^https?:\/\/www\.ximalaya\.com/,tip:'请点击播放需要下载的歌曲,然后在网页下方播放器内点击"下载"'} ]}], playLine:[ {"name":"纯净1","url":"https://im1907.top/?jx=","mobile":1}, {"name":"B站1","url":"https://jx.jsonplayer.com/player/?url=","mobile":1}, {"name":"YT","url":"https://jx.yangtu.top/?url=","mobile":0}, {"name":"BL","url":"https://vip.bljiex.com/?v=","mobile":0}, {"name":"冰豆","url":"https://bd.jx.cn/?url=","mobile":0}, {"name":"CK","url":"https://www.ckplayer.vip/jiexi/?url=","mobile":0}, {"name":"IK9","url":"https://yparse.ik9.cc/index.php?url=","mobile":0}, {"name":"弹幕","url":"https://dmjx.m3u8.tv/?url=","mobile":0}, {"name":"JX","url":"https://jiexi.site/?url=","mobile":0}, {"name":"JY","url":"https://jx.playerjy.com/?url=","mobile":0}, {"name":"解析la","url":"https://api.jiexi.la/?url=","mobile":0}, {"name":"M3U8","url":"https://jx.m3u8.tv/jiexi/?url=","mobile":0}, {"name":"PM","url":"https://www.playm3u8.cn/jiexi.php?url=","mobile":0}, {"name":"盘古","url":"https://www.pangujiexi.cc/jiexi.php?url=","mobile":0}, {"name":"盘古2","url":"https://www.pangujiexi.com/jiexi/?url=","mobile":0}, {"name":"剖云","url":"https://www.pouyun.com/?url=","mobile":0}, {"name":"七哥","url":"https://jx.nnxv.cn/tv.php?url=","mobile":0}, {"name":"神哥","url":"https://json.ovvo.pro/jx.php?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":"虾米2","url":"https://jx.xmflv.cc/?url=","mobile":0}, {"name":"夜幕","url":"https://www.yemu.xyz/?url=","mobile":0}, {"name":"云析","url":"https://jx.yparse.com/index.php?url=","mobile":0}, {"name":"17云","url":"https://www.1717yun.com/jx/ty.php?url=","mobile":0}, {"name":"180","url":"https://jx.000180.top/jx/?url=","mobile":0}, {"name":"2ys","url":"https://gj.fenxiangb.com/player/analysis.php?v=","mobile":0}, {"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/} ]}], taobao:[{isOpen:GM_getValue('taobao','22'),web:[ {funcName:'taobaoSearch',match:/^https?:\/\/s\.taobao\.com\/search\?.+/} ]}], 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}, {funcName:'videoDownload',name:'xiguaVideoDownload',match:/^https?:\/\/www\.ixigua\.com\//,isWebOpen:xiguaVideoDownload}, {funcName:'videoDownload',name:'biliVideoDownload',match:/^https?:\/\/www\.bilibili\.com\//,isWebOpen:biliVideoDownload}, {funcName:'videoDownload',name:'youtubeVideoDownload',match:/^https?:\/\/www\.youtube\.com/,isWebOpen:youtubeVideoDownload}, ]}], 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'}, ], downloadOption:[{name:'直接下载',id:'toDownload'},{name:'复制链接',id:'toCopy'},{name:'打开文件',id:'toLink'}], blackmode:[{isOpen:GM_getValue('blackmodeList',0),web:[ {funcName:'blackmode',match:/.*/} ]}], } var {getCoupon,jxVideo,jxMusic,playLine,zhNice,taobao,videoDownload,keyCode,downloadOption,blackmode} = datas; class BaseClass{ constructor(){ if(GM_getValue('iconPositionSetPage') != 0){ iconVipTop = GM_getValue('iconTop') || GM_getValue('iconTop') == 0?GM_getValue('iconTop'):iconVipTop; iconVipPosition = GM_getValue('iconPosition')?GM_getValue('iconPosition'):iconVipPosition; selectedLeft = iconVipPosition=='left'?'selected':''; selectedRight = iconVipPosition=='right'?'selected':''; iconVipWidth = GM_getValue('iconWidth')?GM_getValue('iconWidth'):iconVipWidth; iconWaitTime = GM_getValue('iconWaitTime')?GM_getValue('iconWaitTime')*1000:iconWaitTime; iconVipOpacity = GM_getValue('iconOpacity') || GM_getValue('iconOpacity') == 0?GM_getValue('iconOpacity'):iconVipOpacity; } GM_registerMenuCommand("设置", () => this.menuSet()); this.setStyle(); this.className = this.getClassName(); } setStyle(){ let menuSetStyle = ` .zhmMask{ z-index:999999999; background-color:#000; position: fixed;top: 0;right: 0;bottom: 0;left: 0; opacity:0.8; } .zhm_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; } .zhm_setWrapLi{ margin:0px;padding:0px; } .zhm_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; } .zhm_setWrapLiContent{ display: flex;justify-content: space-between;align-items: center; } .zhm_setWrapSave{ position:absolute;top:-2px;right:10px;font-size:24px;cursor:pointer } .zhm_iconSetFoot{ position:absolute;bottom:0px;padding:10px 20px;width:100%; z-index:1000000009;background:#fef9ef; } .zhm_iconSetFootLi{ margin:0px;padding:0px; } .zhm_iconSetFootLi li{ display: inline-flex; padding:0px 2px; justify-content: space-between;align-items: center; font-size: 12px; } .zhm_iconSetFootLi li a{ color:#555; } .zhm_iconSetFootLi a:hover { color:#fe6d73; } .zhm_iconSetPage{ z-index:1000000001; position:absolute;top:0px;left:300px; background:#fff; width:300px; height:100%; } .zhm_iconSetUlHead{ padding:0px; margin:0px; } .zhm_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; } .zhm_iconSetPageLi{ margin:0px;padding:0px; } .zhm_iconSetPageLi li{ list-style: none; padding:8px 20px; border-bottom:1px solid #eee; } .zhm_zhihuSetPage{ z-index:1000000002;position:absolute;top:0px;left:300px;background:#fff;width:300px;height:100%; } .zhm_iconSetPageInput{ display: flex !important;justify-content: space-between;align-items: center; } .zhihuSetPageLi{ margin:0px;padding:0px; height:258px; overflow-y: scroll; } .zhihuSetPageContent{ display: flex !important;justify-content: space-between;align-items: center; } .zhm_circular{ width: 40px;height: 20px;border-radius: 16px;transition: .3s;cursor: pointer;box-shadow: 0 0 3px #999 inset; } .zhm_round-button{ width: 20px;height: 20px;;border-radius: 50%;box-shadow: 0 1px 5px rgba(0,0,0,.5);transition: .3s;position: relative; } .zhm_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; } .zhm_to-right{ margin-left:20px; display: inline-block; padding: 3px;transform: rotate(-45deg); -webkit-transform: rotate(-45deg);cursor:pointer; } .zhm_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; height: 220px; overflow-y: scroll; } .zhm_set_page_list::-webkit-scrollbar { /*滚动条整体样式*/ width : 0px; /*高宽分别对应横竖滚动条的尺寸*/ height: 1px; } .zhm_set_page_list::-webkit-scrollbar-thumb { /*滚动条里面小方块*/ border-radius : 2px; background-color: #fe6d73; } .zhm_set_page_list::-webkit-scrollbar-track { /*滚动条里面轨道*/ box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2); background : #ededed; border-radius: 10px; } .zhm_set_page_list li{ /*border-bottom:1px solid #ccc;*/ padding:12px 20px; display:block; border-bottom:1px solid #eee; } li:last-child{ border-bottom:none; } .zhm_scroll{ overflow-y: scroll !important; } .zhm_scroll::-webkit-scrollbar { /*滚动条整体样式*/ width : 0px; /*高宽分别对应横竖滚动条的尺寸*/ height: 1px; } .zhm_scroll::-webkit-scrollbar-thumb { /*滚动条里面小方块*/ border-radius : 2px; background-color: #fe6d73; } .zhm_scroll::-webkit-scrollbar-track { /*滚动条里面轨道*/ box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2); background : #ededed; border-radius: 10px; } /*-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"); } .zhm_text-input { font-size: 16px; position: relative; right:0px; z-index: 0; } .zhm_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; box-sizing: initial; } .zhm_text-input__body:-ms-input-placeholder { color: var(--gray-color-secondary); } .zhm_text-input__body::-moz-placeholder { color: var(--gray-color-secondary); } .zhm_text-input__body::placeholder { color: var(--gray-color-secondary); } .zhm_text-input__body[data-is-valid] { padding-right: 1em; } .zhm_text-input__body[data-is-valid=true] { border-color: var(--valid-color); } .zhm_text-input__body[data-is-valid=false] { border-color: var(--invalid-color); box-shadow: inset 0 0 0 1px var(--invalid-color); } .zhm_text-input__body:focus { border-color: var(--active-color); box-shadow: inset 0 0 0 1px var(--active-color); outline: none; } .zhm_text-input__body:-webkit-autofill { transition-delay: 9999s; -webkit-transition-property: background-color; transition-property: background-color; } .zhm_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; } .zhm_text-input__body[data-is-valid=false] + .zhm_text-input__validator { background-image: var(--invalid-icon); } .zhm_select-box { box-sizing: inherit; font-size: 16px; position: relative; transition: background-color 0.5s ease-out; width:90px; } .zhm_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; } .zhm_select-box__body { box-sizing: initial; -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; } .zhm_select-box__body[data-is-valid=true] { border-color: var(--valid-color); box-shadow: inset 0 0 0 1px var(--valid-color); } .zhm_select-box__body[data-is-valid=false] { border-color: var(--invalid-color); box-shadow: inset 0 0 0 1px var(--invalid-color); } .zhm_select-box__body.focus-visible { border-color: var(--active-color); box-shadow: inset 0 0 0 1px var(--active-color); outline: none; } .zhm_select-box__body:-webkit-autofill { transition-delay: 9999s; -webkit-transition-property: background-color; transition-property: background-color; } .zhm_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: initial; 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%; } .zhm_textarea__body:only-child { position: relative; resize: vertical; } .zhm_textarea__body:focus { border-color: var(--active-color); box-shadow: inset 0 0 0 1px var(--active-color); outline: none; } .zhm_textarea__body[data-is-valid=true] { border-color: var(--valid-color); box-shadow: inset 0 0 0 1px var(--valid-color); } .zhm_textarea__body[data-is-valid=false] { border-color: var(--invalid-color); box-shadow: inset 0 0 0 1px var(--invalid-color); } .zhm_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; } .zhm_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;} } .zhm_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); } menuSet(){ var _this = this; var setListJson= [ {'listName':lang.iconPosition,'setListID':'iconPositionSetPage','setPageID':'movieIconSetPage','takePlace':'0px'}, {'listName':lang.playVideo,'setListID':'movieList','setPageID':'movieVideoSetPage','takePlace':'0px'}, {'listName':lang.playMusic,'setListID':'musicList','setPageID':'','takePlace':''}, {'listName':lang.zhNice,'setListID':'zhihuList','setPageID':'zhihuIconSetPage','takePlace':'220px'}, {'listName':lang.videoDownload,'setListID':'videoDownloadList','setPageID':'videoDownloadSetPage','takePlace':'0px'}, {'listName':'夜间模式','setListID':'blackmodeList','setPageID':'','takePlace':''}, ]; 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.specialColumn,'optionID':'specialColumn','default':22}, {'optionName':lang.videoTitle,'optionID':'videoTitle','default':22}, {'optionName':lang.zhKeywordClose,'optionID':'removeKeyword','default':'0'}, {'optionName':lang.authorNameClose,'optionID':'removeAuthorName','default':22}, {'optionName':lang.yanxuanClose,'optionID':'removeYanxuan','default':'0'} ]; var playVideoOptionJson ={ 'optionName':lang.playVideoLineAdd, 'optionID':'videoPlayLineAdd', 'default':videoPlayLineAdd, 'textarea':'videoPlayLineAddTextarea', 'textareaId':'playVideoLineTextarea', 'tip': `纯净1,https://im1907.top/?jx= B站1,https://jx.jsonplayer.com/player/?url= YT,https://jx.yangtu.top/?url= BL,https://vip.bljiex.com/?v= 冰豆,https://bd.jx.cn/?url= CK,https://www.ckplayer.vip/jiexi/?url= 弹幕,https://dmjx.m3u8.tv/?url= IK9,https://yparse.ik9.cc/index.php?url= JX,https://jiexi.site/?url= JY,https://jx.playerjy.com/?url= 解析la,https://api.jiexi.la/?url= M3U8,https://jx.m3u8.tv/jiexi/?url= PM,https://www.playm3u8.cn/jiexi.php?url= 盘古,https://www.pangujiexi.cc/jiexi.php?url= 盘古2,https://www.pangujiexi.com/jiexi/?url= 剖云,https://www.pouyun.com/?url= 七哥,https://jx.nnxv.cn/tv.php?url= 神哥,https://json.ovvo.pro/jx.php?url= 听乐,https://jx.dj6u.com/?url= 维多,https://jx.ivito.cn/?url= 虾米,https://jx.xmflv.com/?url= 虾米2,https://jx.xmflv.cc/?url= 夜幕,https://www.yemu.xyz/?url= 云析,https://jx.yparse.com/index.php?url= 17云,https://www.1717yun.com/jx/ty.php?url= 180,https://jx.000180.top/jx/?url= 2ys,https://gj.fenxiangb.com/player/analysis.php?v= 8090,https://www.8090g.cn/?url=`, 'valueName':'playVideoLineText'} var videoDownloadOptionJson = [ {'optionName':lang.dyVideoDownload,'optionID':'dyVideoDownload','default':dyVideoDownload}, {'optionName':lang.ksVideoDownload,'optionID':'ksVideoDownload','default':ksVideoDownload}, {'optionName':lang.xiguaVideoDownload,'optionID':'xiguaVideoDownload','default':xiguaVideoDownload}, {'optionName':lang.biliVideoDownload,'optionID':'biliVideoDownload','default':biliVideoDownload}, {'optionName':lang.youtubeVideoDownload,'optionID':'youtubeVideoDownload','default':youtubeVideoDownload}, ]; var setHtml = "
"; setHtml +="
"; setHtml +="
"; setHtml +="
  • "+lang.iconPosition+"×
"; setHtml +="
    "; setHtml +="
  • "+lang.iconHeight+":
  • "; setHtml += "
  • "+lang.iconLine+":
  • " setHtml +="
  • "+lang.iconWidth+":
  • "; setHtml += "
  • "+lang.iconWaitTime+":
  • "; setHtml +="
  • 透 明 度 :
  • "; setHtml +="
"; setHtml +="
"; setHtml +="
  • "+lang.videoDownload+"×
"; setHtml +="
    "; for(let i=0;i"; 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 +="
"; } if(zhihuOptionJson[optionN].optionID == 'removeAuthorName'){ var authorNameShow; if(GM_getValue('removeAuthorName','22') == '22'){ authorNameShow = 'block'; }else{ authorNameShow = 'none'; } setHtml +="
"; } 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 = _this.zhmHTML(setHtml); let timerZhmIcon = setInterval(function(){ if (document.querySelector('#zhmMenu')){ clearInterval(timerZhmIcon); let circular = document.querySelectorAll('.zhm_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 == 'removeAuthorName' && listLeftValue==22){ document.querySelector('#zhihuAuthorName').style.display='block'; } if(setListID == 'removeAuthorName' && listLeftValue==0){ document.querySelector('#zhihuAuthorName').style.display='none'; } GM_setValue(setListID,listLeftValue); }) }); let toRight = document.querySelectorAll('.zhm_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='zhm_iconSetPage zhm_toLeftMove'; if(setPageID=='zhihuIconSetPage'){ document.querySelector('#zhmTakePlace').style= `height:68px`; } if(setPageID == 'movieIconSetPage'){ document.querySelector('#iconTop').value=document.querySelector("#"+_this.className.zhmlogo).offsetTop; } }) }) let toBack = document.querySelectorAll('.zhm_back'); toBack.forEach(function(item){ item.addEventListener('click', function(e){ let parentDom = item.parentNode.parentNode.parentNode; parentDom.className='zhm_iconSetPage zhm_toRightMove'; document.querySelector('#zhmTakePlace').style='height:40px;' }) }) let setSave = document.querySelectorAll('.zhm_iconSetSave'); setSave.forEach(function(item){ item.addEventListener('click',()=>{ let iconTop = document.getElementById('iconTop').value; let iconOpacity=document.getElementById('iconOpacity').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; let inputAuthorName = document.getElementById('inputZhAuthorName').value; if(iconTop != ''){ if(!(/(^[0-9][0-9]{0,2}$)/.test(iconTop))){ alert(lang.tipErrorIconHeight); return false; } GM_setValue('iconTop',iconTop); } if(iconOpacity != ''){ if(!(/^(?:0|[1-9][0-9]?|100)$/.test(iconOpacity))){ alert(lang.tipErrorIconOpacity); return false; } GM_setValue('iconOpacity',iconOpacity); } if(iconPosition != ''){ GM_setValue('iconPosition',iconPosition); } if(iconWaitTime != ''){ GM_setValue('iconWaitTime',iconWaitTime); } if(iconWidth !=''){ if(!(/(^([1-9][0-9]?)$)/.test(iconWidth))){ alert(lang.tipErrorIconWidth); return false; } GM_setValue('iconWidth',iconWidth); } 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'); } } if(inputAuthorName != ''){ GM_setValue('inputZhAuthorName',inputAuthorName); }else{ if(GM_getValue('inputZhAuthorName')){ GM_deleteValue('inputZhAuthorName'); } } 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,isCookie=''){ 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); if(isCookie){ request.withCredentials = true; } request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 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,all=''){ return new Promise((resolve,reject)=>{ let num = 0; let timer = setInterval(function(){ num++ let dom; if(all == false){ dom = document.querySelector(css); if(dom){ clearInterval(timer); resolve(dom); } }else{ dom = document.querySelectorAll(css); if(dom.length>0){ clearInterval(timer); resolve(dom); } } if(num==20){ clearInterval(timer); resolve(false); } },300) }) } static toast(msg,duration){ duration=isNaN(duration)?3000:duration; let toastDom = document.createElement('div'); toastDom.innerHTML = msg; toastDom.style.cssText='padding:2px 15px;min-height: 36px;line-height: 36px;text-align: center;transform: translate(-50%);border-radius: 4px;color: rgb(255, 255, 255);position: fixed;top: 50%;left: 50%;z-index: 9999999;background: rgb(0, 0, 0);font-size: 16px;' document.body.appendChild(toastDom); setTimeout(function() { var d = 0.5; toastDom.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in'; toastDom.style.opacity = '0'; setTimeout(function() { document.body.removeChild(toastDom) }, d * 1000); }, duration); } zhmLogo(){ var _this = this; let sortDiv = iconVipPosition=='left'?'row':'row-reverse'; let playVideoStyle = ` .${this.className.zhm_play_vidoe_icon}{ padding-top:2px; cursor:pointer; z-index:999999; position:fixed;${iconVipPosition}:5px;top:${iconVipTop}px; text-align:center; overflow:visible; display:flex; flex-direction:${sortDiv}; width:auto; } .${this.className.zhm_play_video_wrap}{ z-index:9999999; overflow: hidden; width:300px; } .${this.className.iconLogo}{ opacity:${iconVipOpacity/100}; } .${this.className.zhm_play_video_line}{ width:320px; height:316px; overflow-y:scroll; overflow-x:hidden; } .${this.className.zhm_play_vide_line_ul}{ width:300px; display: flex; justify-content: flex-start; flex-flow: row wrap; list-style: none; padding:0px; margin:0px; } .${this.className.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; } .${this.className.zhm_play_video_line_ul_li}:hover{ color:#260033; background-color:#fcc0c0 } .${this.className.zhm_line_selected}{ color:#260033; background-color:#fcc0c0 } .${this.className.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); let playWrapHtml = `
`; playWrapHtml += `` playWrapHtml += `
`; _this.createElement('div',_this.className.zhmIcon); let zhmPlay = document.getElementById(_this.className.zhmIcon); zhmPlay.innerHTML = _this.zhmHTML(playWrapHtml); } zhmLogoDrag(type,web){ var _this = this; var zhmLogoDrag=document.querySelector("#"+this.className.zhmlogo); var zhmLogoIcon = document.querySelector("."+this.className.iconLogo); if(!zhmLogoDrag || !zhmLogoIcon)return; zhmLogoDrag.onmousedown = function(event){ if(event.which==3)return false; let sedownTop = zhmLogoDrag.offsetTop; let zhmLogoIconHeight = zhmLogoIcon.offsetHeight; let bottomSpace = 10; if(event.target.className != _this.className.iconLogo)return; let shiftx = 5; let shiftY = event.clientY-zhmLogoDrag.getBoundingClientRect().top; zhmLogoDrag.style.position = 'fixed'; zhmLogoDrag.style.zIndex = 9999999; document.body.append(zhmLogoDrag); function onMouseMove(event){ zhmLogoDrag.style.left = '5px'; let height = window.innerHeight - zhmLogoIconHeight-bottomSpace; let y = event.pageY-shiftY; y = Math.min(Math.max(0, y), height); zhmLogoDrag.style.top = y+'px'; } document.addEventListener('mousemove',onMouseMove); document.onmouseup = function(e){ GM_setValue('iconTop',zhmLogoDrag.offsetTop); document.removeEventListener('mousemove', onMouseMove); zhmLogoDrag.onmouseup = null; let height = zhmLogoDrag.offsetTop+zhmLogoIconHeight+bottomSpace; if(zhmLogoDrag.offsetTop < 0){ zhmLogoDrag.style.top ='0px'; } if(window.innerHeight < height){ zhmLogoDrag.style.top =window.innerHeight-zhmLogoIconHeight-bottomSpace+'px'; } switch(type){ case 'video': if(zhmLogoDrag.offsetTop==sedownTop && web.length == 0 && zhmLogoDrag.offsetTop>0 && window.innerHeight > height){ BaseClass.toast('请在视频播放页点击图标'); } break; case 'music': if(zhmLogoDrag.offsetTop==sedownTop && e.target.className == _this.className.iconLogo){ let musicUrlData = [ {match:/^https?:\/\/music\.163\.com\/#\/(?:song|dj)\?id/}, {match:/^https?:\/\/y\.music\.163\.com\/m\/(?:song|dj)\?id/}, {match:/^https?:\/\/music\.163\.com\/(?:song|dj)\?id/}, {match:/^https?:\/\/y\.qq\.com\/n\/ryqq\/player/}, {match:/kugou\.com/}, {match:/kuwo\.cn/}, {match:/^https?:\/\/www\.ximalaya\.com/}, ] let musicUrl = musicUrlData.filter(function(item){ return location.href.match(item.match); }) if(musicUrl.length==0){ BaseClass.toast(web[0].tip); return; } switch(web[0].name){ case 'netease': neteaseFun(); break; case 'qq': qqFun(); break; case 'kugou': kugouFun(); break; case 'kuwo': kuwoFun(); break; case 'ximalaya': ximalayaFun(); break; } function neteaseFun(){ let urlParams = _this.getUrlParams(location.href); if(urlParams.id == undefined) return; let neteaseUrlEncode = encodeURIComponent('https://music.163.com/song?id='+urlParams.id); let openUrl = webUrl+"?id="+urlParams.id+"&type=netease" window.open(openUrl); } function qqFun(){ let qqSongMatch; if(document.querySelector(".player_music__info")){ qqSongMatch = document.querySelector(".player_music__info").childNodes[0].href.match(/songDetail\/(\S*)\?/); }else if(document.querySelector("#sim_song_info")){ qqSongMatch = document.querySelector("#sim_song_info").childNodes[0].href.match(/song\/(\S*).html/); }else{ qqSongMatch = ''; } if(!qqSongMatch[1]){console.log('没有获取到歌曲ID'); return}; let audioLink = encodeURIComponent(document.querySelector("audio").src); let openUrl = webUrl+'?id='+qqSongMatch[1]+'&type=qq&playUrl='+audioLink; window.open(openUrl); } function kugouFun(){ let audioModule = document.querySelector('#audioModule'); if(audioModule){ document.querySelector('#audioModule').style='bottom:0px;'; document.querySelector('#showHide_playbar').className = 'icon show-playbar-btn'; } BaseClass.toast('请点击播放需要下载的歌曲,然后在网页下方播放器内点击"下载"',2000) } function kuwoFun(){ document.querySelector('.playControl').style='bottom:0px'; BaseClass.toast('请点击播放需要下载的歌曲,然后在网页下方播放器内点击"下载"',2000) } function ximalayaFun(){ document.querySelector('.xm-player').style='bottom:0px'; BaseClass.toast('请点击播放需要下载的歌曲,然后在网页下方播放器内点击"下载"',2000) } } break; case 'youtube': break; } }; }; zhmLogoDrag.ondragstart = function(){ return false; }; } static LR_download(url,filename){ let ua = navigator.userAgent.toLowerCase(); console.log(ua.match(/version\/([\d.]+).*safari/)); if(ua.match(/version\/([\d.]+).*safari/)){ window.open(url); }else{ GM_download(url,filename); } } randomString(e) { e = e || 32; var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz",a = t.length,n = ""; for (let i = 0; i < e; i++){ n += t.charAt(Math.floor(Math.random() * a)); }; return n; } getClassName(){ let className = [ 'zhmIcon', 'zhm_play_vidoe_icon', 'zhm_play_video_wrap', 'iconLogo', 'zhm_play_video_line', 'zhm_play_vide_line_ul', 'zhm_play_video_line_ul_li', 'zhm_line_selected', 'zhm_play_video_jx', 'playButton', 'zhmlogo', 'playLineTd', 'playLineDiv', 'zhm_div_s', 'zhm_coupon', 'zhm_left', 'zhm_img_icon', 'zhm_content', 'zhm_money', 'zhm_amount_money', 'zhm_money_sign', 'zhm_money_num', 'zhm_condition', 'zhm_time', 'zhm_term', 'zhm_date', 'zhm_circle', 'zhm_link_coupon', 'zhm_get_link_text', 'zhm_qrcode', 'itemQR', 'jdCouponLink', 'tbqrcode', 'jdqrcode', 'positionQrcode', 'positionQrcodeHead', 'positionQrcodeBody', 'positionQrcodeImg', 'keywordSearch', 'keywordNav', 'keywordNavLi', 'keywordNavLiIcon', 'keywordNavLiActive', 'keywordGoodsList', 'keywordGoodsUl', 'goodsList', 'goodsListWaiting', 'waitingIcon', 'goodsImg', 'goodsSgin', 'goodsPrice', 'goodsDiscountPrice', 'goodsTitle', 'keywordGoodsListActive', 'keywordCoupon', 'keywordCouponLeft', 'keywordCouponRight' ]; let objClassName = {}; for(let i=0;i s}); return stringObj.createHTML(string); } return string; } } class CouponClass extends BaseClass{ constructor(){ super(); this.divElement = document.createElement("div"); this.divElement.id = this.className.zhm_div_s; this.goods_id; this.goods_title; this.coupon_info = {}; this.GMSaveData = 'cssData'; this.edgeLengthRight = 60; this.couponStyle(); } couponStyle(){ var couponStyle =` html{ --right:100%; --left:100%; } .${this.className.zhm_coupon}{ width:fit-content; display: flex; flex-direction:row; justify-content: space-between; align-items:flex-start; font-size:14px; position: relative; margin-bottom:15px; } .${this.className.zhm_left}{ display: flex; flex-direction:row; justify-content:flex-start; align-items: center; font-size:14px; background: radial-gradient(circle at right top, transparent 8px,#fff 0) top left /var(--right) 51% no-repeat, radial-gradient(circle at right bottom, transparent 8px, #fff 0) bottom left /var(--right) 51% no-repeat; filter: drop-shadow(2px 2px 3px #888); height:84px; width:100%; } .${this.className.zhm_img_icon}{ padding:4px 0px 0px 5px; margin-right:5px; } .${this.className.zhm_img_icon} img{ width:47px; } .${this.className.zhm_content}{ display: flex; flex-direction:column; margin-right: 18px; } .${this.className.zhm_money}{ display: flex; flex-direction:row; justify-content: flex-start; align-items: center; } .${this.className.zhm_amount_money}{ display: flex; align-items: flex-start; } .${this.className.zhm_money_sign}{ color:#f23030; font-size: 20px; font-family: Arial; } .${this.className.zhm_money_num}{ color:#f23030; font-size:36px; margin-left: 2px; } .${this.className.zhm_condition}{ color:#fb0f3a; background-color: #fff4ec; margin-top:5px; margin-left: 5px; padding:2px 5px; font-size:12px; } .${this.className.zhm_time}{ display: flex; flex-direction:row; margin-top: -5px; padding:2px 4px; } .${this.className.zhm_term}{ color:#fb0f3a; border: 1px solid #fb0f3a; border-radius:2px; align-items: center; padding:0px 4px; font-size:12px; height: 18px; } .${this.className.zhm_date}{ font-size: 14px; font-weight: 500; padding-left:8px; } .${this.className.zhm_circle}{ background: #fb0f3a url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAACXBIWXMAAAsSAAALEgHS3X78AAAAzUlEQVQYlS3NMUoDQRiG4Xcmu9lAXBQbq+1CCqucwsbOO3gAS29h4Qm8gRdIMKVglQVBFiSFjYKBqWZ2d/7PIvYPPE6SMCHvcD8HuLzBUsIKDyY8AN4RU+J9/8nH8oLYJ3wWchxBjJHtZkN1fsbp9omvhzv6ccDjQJLatlXXdZIk5awkKVzdKk9W8gBFUVDXNQA2jJTA7GSOmR2LpmkIIWA546spvO5wL29Qz3GSBBCHnnwIzO4f0fMaYoKy/Acm8A6+fxkX15ANqimY8QemCm920r1aUAAAAABJRU5ErkJggg==) repeat-y; margin-top:10px; width: 10px; height:66px; position: absolute; right:97px; z-index:2; filter:none; } .${this.className.zhm_link_coupon}{ display: flex; flex-direction:row; align-items:center; filter: drop-shadow(2px 2px 3px #888); background: radial-gradient(circle at left top, transparent 8px, #fb053a 0) top right /var(--left) 50% no-repeat, radial-gradient(circle at left bottom, transparent 8px, #fb053a 0) bottom right /var(--left) 50% no-repeat; height: 84px; padding:0px 6px 0px 4px; } .${this.className.zhm_get_link_text}{ cursor:pointer; margin-top: 0px; writing-mode:vertical-lr; letter-spacing:0px; color: #fff !important; font-size:14px; font-family:"Microsoft YaHei"; text-decoration:none; background: radial-gradient(circle at left top, transparent 8px, #fb053a 0) top right /var(--left) 50% no-repeat, radial-gradient(circle at left bottom, transparent 8px, #fb053a 0) bottom right /var(--left) 50% no-repeat; } .${this.className.zhm_get_link_text}:hover{ text-decoration:none; font-weight:800; font-family:"Microsoft YaHei"; } .${this.className.zhm_qrcode}{ border:3px solid #fff; } #${this.className.positionQrcode}{ position: fixed; bottom: 0px; z-index: 21474836478; padding: 4px; background-color: #f6f6f6; border-radius: 3px; -webkit-box-shadow: 0px 10px 39px 10px rgba(52, 53, 53, 0.22); -moz-box-shadow: 0px 10px 39px 10px rgba(52, 53, 53, 0.22); box-shadow: 0px 10px 39px 10px rgba(52, 53, 53, 0.22); } .${this.className.positionQrcodeHead}{ font-size:12px; color:#ff0000; font-weight:bold; margin-bottom:4px; margin-bottom:8px; text-align:center; } .${this.className.positionQrcodeBody}{ border:1px solid #f3f3f3; border-radius: 5px; background-color:#fff; padding:5px; margin:0px auto; } .${this.className.keywordSearch}{ position:fixed; bottom:0px; left:0px; font-family: "Microsoft YaHei", tahoma, arial, SimSun; z-index:21474836478; display: flex; /*height:355px;*/ flex-direction:column-reverse } .${this.className.keywordSearch} a:hover{ text-decoration: none; } .${this.className.keywordNav}{ display: flex; border: 1px solid rgb(237, 241, 242); box-shadow: rgb(233, 233, 233) 0px 0px 5px 0px; background-color:#fff; } .${this.className.keywordNavLi}{ list-style: none; text-align: center; border-left:1px solid #eee; display: flex; align-items:center; margin-top:4px; } .${this.className.keywordNavLiIcon}{ width:16px;height:16px; margin-right:5px; margin-bottom:2px; } .${this.className.keywordNavLi} a { display: block; text-decoration: none; font-weight: 400; color: #333333; padding: 12px 20px; font-size:14px; line-height:14px; } .${this.className.keywordNavLi} a.${this.className.keywordNavLiActive} { background-color: #fb053a; color: #fff; text-decoration: none; } .${this.className.keywordGoodsList}{ padding: 10px; position:absolute; bottom:45px; left:0px; z-index: 9; display:none; box-shadow: rgb(233, 233, 233) 0px 0px 8px 0px; border: 3px solid rgb(237, 241, 242); background-color:#FFF; } .${this.className.keywordGoodsUl}{ display: flex; } .${this.className.keywordGoodsUl} a:hover{ text-decoration: none; } .${this.className.goodsList}{ margin:0 10px; width:240px; list-style: none; } .${this.className.goodsListWaiting}{ line-height:50px; padding:40px; font-weight:600; font-size:16px; display:flex; justify-content: center; font-weight:400; font-size:14px; } .${this.className.waitingIcon}{ widht:36px; height:36px; position:relative; top:6px; } .${this.className.goodsImg}{ width: 160px; height:160px; } .${this.className.goodsSgin}{ font-weight: 400; font-size:14px; margin-right:2px; } .${this.className.goodsPrice}{ font-size: 20px; color: #fb053a; font-weight: 700; margin:18px auto 10px; } .${this.className.goodsDiscountPrice}{ margin-left:5px; font-size:12px;color:#999; font-weight: 400; } .${this.className.goodsTitle}{ height:60px; line-height:30px; overflow: hidden; color: rgb(51, 51, 51); font-weight: 700; font-size:14px; } .${this.className.goodsTitle}:hover{ color: #fb053a; } .${this.className.keywordGoodsListActive}{ display:block; } .${this.className.keywordCoupon}{ background: -webkit-linear-gradient(left, #fb053a, #fb053a); background: -o-linear-gradient(left, #fb053a, #fb053a); background: -moz-linear-gradient(left, #fb053a, #fb053a); line-height: 40px; display: flex; flex-direction: row; box-shadow: rgb(233, 233, 233) 0px 0px 8px 0px; border-radius: 5px; border:2px solid #fff; margin-top:4px; } .${this.className.keywordCouponLeft}{ flex: 1; color: white; font-size: 14px; position: relative; padding: 0 20px 0 5px; background-image: radial-gradient(circle at right top, #fff, #fff 3px, transparent 3px), radial-gradient(circle at right bottom, #fff, #fff 3px, transparent 3px); display: flex; } .${this.className.keywordCouponRight}{ color: white; border: none; padding: 0 20px; background-image: radial-gradient(circle at left top, #fff, #fff 3px, transparent 3px), radial-gradient(circle at left bottom, #fff, #fff 3px, transparent 3px); font-size:18px; font-weight:600; } @keyframes zhmloadingcssiconunit { 0% { opacity: 1 } 100% { opacity: 0 } } .zhmloadingcssiconunit div { left: 47px; top: 24px; position: absolute; animation: zhmloadingcssiconunit linear 1s infinite; background: #fe718d; width: 6px; height: 12px; border-radius: 3px / 6px; transform-origin: 3px 26px; }.zhmloadingcssiconunit div:nth-child(1) { transform: rotate(0deg); animation-delay: -0.9166666666666666s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(2) { transform: rotate(30deg); animation-delay: -0.8333333333333334s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(3) { transform: rotate(60deg); animation-delay: -0.75s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(4) { transform: rotate(90deg); animation-delay: -0.6666666666666666s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(5) { transform: rotate(120deg); animation-delay: -0.5833333333333334s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(6) { transform: rotate(150deg); animation-delay: -0.5s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(7) { transform: rotate(180deg); animation-delay: -0.4166666666666667s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(8) { transform: rotate(210deg); animation-delay: -0.3333333333333333s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(9) { transform: rotate(240deg); animation-delay: -0.25s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(10) { transform: rotate(270deg); animation-delay: -0.16666666666666666s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(11) { transform: rotate(300deg); animation-delay: -0.08333333333333333s; background: #fe718d; }.zhmloadingcssiconunit div:nth-child(12) { transform: rotate(330deg); animation-delay: 0s; background: #fe718d; } .zhmLoadingCssIcon { width: 40px; height: 40px; display: inline-block; overflow: hidden; background: #ffffff; } .zhmloadingcssiconunit { width: 100%; height: 100%; position: relative; transform: translateZ(0) scale(0.4); backface-visibility: hidden; transform-origin: 0 0; /* see note above */ } .zhmloadingcssiconunit div { box-sizing: content-box; } `; domStyle .appendChild(document.createTextNode(couponStyle)); domHead.appendChild(domStyle); } taobao(){ this.goods_id = this.getQueryString('id'); this.getTitleShop('taobao'); this.keywordSearch(); } tmall(){ this.goods_id = this.getQueryString('id'); this.getTitleShop('tmall'); this.keywordSearch(); } tmallCaoshi(){ this.goods_id = this.getQueryString('id'); this.getTitleShop('tmallcaoshi'); this.keywordSearch(); } tmallHk(){ this.goods_id = this.getQueryString('id'); this.getTitleShop('tmallhk'); this.keywordSearch(); } jd(){ var _this = this; var jdGoodsId = location.href.match(/jd\.(hk|com)\/(\S*)\.html/); this.goods_id = jdGoodsId[2]; var insertCouponDom; var qrcodeDom; (async function(){ let skuName = await BaseClass.getElement('.sku-name'); _this.goods_title = skuName.innerText; let shopName = document.querySelector('.name>a'); let shop_name = shopName?shopName.innerText:''; let cssObj = await _this.getCssData('jd'); for(let i=0;i0){ let dataReally = []; for(let i =0; i < couponDataInfo.length; i++){ if(new Date().getTime()-couponDataInfo[i].addTime < 3600*1000){ dataReally.push(couponDataInfo[i]); } } GM_setValue('couponDataInfo',dataReally); couponDataInfo = dataReally; } let couponDataResult = {data:[],type:1}; if(couponDataInfo.length>0){ for(let i =0;i 0? couponDataInfo:[]; if(couponDataResult.type == 2){ if(couponData.length==0){ couponDataResult.data.forEach(function(item,ikey){ item.goodsId = _this.goods_id; item.addTime = new Date().getTime(); couponData.push(item); }) }else{ for(let a=0;a 1 && couponDataResult.data[a].goods_id == couponData[i].goods_id){ continue; }else{ couponDataResult.data[a].goodsId = _this.goods_id; couponDataResult.data[a].addTime = new Date().getTime(); couponData.push(couponDataResult.data[a]); break; } } } } console.log(couponData); GM_setValue('couponDataInfo',couponData); } switch(couponDataResult.data[0].status){ case 1: var max = couponDataResult.data[0].discount; var index = 0; for(let i=0;i max){ max = cur; index = i; }; } _this.coupon_info.amount = couponDataResult.data[index].discount; _this.coupon_info.link = couponDataResult.data[index].coupon_link_short; if(qrcodeDom){ _this.jdQrcode(qrcodeDom,couponDataResult.data[index].coupon_link_short); } if(!insertCouponDom)return; break; case 2: if(qrcodeDom){ _this.jdQrcode(qrcodeDom,couponDataResult.data[0].coupon_link_short); } _this.positionQrcode(couponDataResult.data[0].coupon_link_short,'京东APP扫码更优惠'); return; break; case 3: console.log('no coupon and link'); return; break; default: console.log('无状态或状态不正确'); return; } let html=''; couponDataResult.data.forEach(function(item,ikey){ html += `
¥
${item.discount}
满${item.quota}元可用
有效期
${item.endTime}
` }); document.getElementById(_this.className.zhm_div_s).innerHTML = html; let couponWidth = document.querySelector('.'+_this.className.zhm_coupon).offsetWidth; for(let i=0;i优 惠 券
`; couponDataResult.data.forEach(function(item){ quanHtml +=` 满${item.quota}减${item.discount} `; }) quanHtml += `
`; let divElement = document.createElement("div"); divElement.id='summary-quan'; divElement.className = 'li p-choose hide'; divElement.setAttribute('clstag','shangpin|keycount|product|lingquan'); divElement.innerHTML = quanHtml; let summaryInfo = document.querySelector('.summary-info'); summaryInfo.after(divElement); _this.edgeLengthRight = 40; _this.positionQrcode(couponDataResult.data[0].coupon_link_short,'京东APP扫码领券'); })() this.keywordSearch(); } vip(){ var _this = this; (async function(){ let skuName = await BaseClass.getElement('.pib-title-detail'); _this.goods_title = skuName.innerText; _this.keywordSearch(); })() } getCouponInfo(titleStr,shopStr,insertCouponDom){ var _this = this; insertCouponDom.before(this.divElement); (async function(){ let url = `https://api.typechrome.com/tb_coupon.php?goods_id=${_this.goods_id}&goods_title=${encodeURIComponent(titleStr)}&shop_name=${encodeURIComponent(shopStr)}`; console.log(url) let GMValuePrefix = 'tbCoupon'; let couponData = await _this.getCouponData(GMValuePrefix,url); if(!couponData)return; switch(couponData.data.status){ case 1: _this.tbCouponHtml(couponData); break; case 2: _this.positionQrcode(couponData.data.code_url,'淘宝/天猫APP扫码更优惠'); return; break; case 3: console.log('no coupon and link'); return; break; default: console.log('无状态或状态不正确'); return; } })() } getTitleShop(website){ var _this = this; (async function(){ let titleStr,shopStr,insertCouponDom; let cssObj = await _this.getCssData(website); if(cssObj){ titleStr = await _this.asyncLoop(cssObj.title); if(!titleStr){ console.log('未获取标题'); return; } _this.goods_title = titleStr; if(cssObj.shop.length>0){ for(let i=0;i ${resp.youhuiquan}元店铺优惠券,${resp.coupon_info} 领取 `; let tbCoupon = otherDiscount.querySelectorAll('.tb-coupon'); if(tbCoupon.length>0){ let tbCouponImgDom = tbCoupon[0].querySelector('img'); let imgSrc = tbCouponImgDom.src?tbCouponImgDom.src:'//img.alicdn.com/tps/TB1xlnONpXXXXa9aXXXXXXXXXXX-80-16.png'; let getCouponDom = tbCoupon[0].cloneNode(true); getCouponDom.innerHTML = couponHtml; getCouponDom.querySelector('img').setAttribute('src',imgSrc); tbCoupon[0].before(getCouponDom); }else{ let otherDiscoun = document.querySelector('#J_OtherDiscount'); if(otherDiscoun){ let tbOtherDiscount = otherDiscoun.querySelector('.tb-other-discount'); tbOtherDiscount.innerHTML = `
${couponHtml}
`; otherDiscoun.className='tb-clear'; }else{ } } } jdQrcode(qrcodeDom,url){ var _this = this; (async function(){ qrcodeDom.id = _this.className.jdqrcode; let qrcodeDomClassName = qrcodeDom.className.split(' '); console.log(qrcodeDomClassName); let qrcodeImgDom = await BaseClass.getElement('.'+qrcodeDomClassName[0]+' img'); qrcodeImgDom.parentNode.removeChild(qrcodeImgDom); var qrcode = new QRCode(_this.className.jdqrcode, { width: 80, height: 80, colorDark : "#121212", colorLight : "#ffffff", correctLevel : QRCode.CorrectLevel.M }); qrcode.makeCode(url); qrcodeDom.className = qrcodeDomClassName[1]; })() } asyncLoop(data,duration=2000){ return new Promise((resolve,reject)=>{ let n=0; let timer = setInterval(function(){ n++; for(let i=0;i{ (async function(){ let cssData = GM_getValue(_this.GMSaveData,false); if(cssData && new Date().getTime() - cssData.addTime > 3600*1000){ GM_deleteValue(_this.GMSaveData); cssData = false; } console.log('css数据:',cssData); if(!cssData){ let url = `https://api.typechrome.com/getCss.php`; let result = await _this.request('get',url); let cssDataObj = JSON.parse(result); cssDataObj.addTime = new Date().getTime(); GM_setValue(_this.GMSaveData,cssDataObj); resolve(cssDataObj[website]); }else{ resolve(cssData[website]); } })() }) } taobaoSearch(item){ let timer = setInterval(function(){ let dom = document.querySelector('#selectTb'); if(!dom){ let selectsDom =document.querySelector('.next-checkbox-group'); if(selectsDom){ let labels = selectsDom.querySelectorAll('label'); labels.forEach(function(item){ let itemText = item.querySelector('span:last-child').innerText; if(itemText=='天猫'){ let tbLabels = item.cloneNode(true); tbLabels.setAttribute('id','selectTb'); let inputDom = tbLabels.querySelector('span:first-child > input'); inputDom.value='service:taobao'; tbLabels.querySelector('.next-checkbox-label').innerText='淘宝'; let insertDom = selectsDom.querySelector('label:nth-of-type(2)'); insertDom.before(tbLabels); tbLabels.addEventListener('click',selectTaobao); tbLabels.querySelector('.next-checkbox-label').addEventListener('click',function(e){ e.stopPropagation(); }) } }) } }else{ if(dom.className == 'next-checkbox-wrapper checked '){ showTbPage(); } } }) function selectTaobao(e){ let parentDom = e.target.parentNode; if(parentDom.className =='next-checkbox' && parentDom.parentNode.className == 'next-checkbox-wrapper '){ parentDom.parentNode.className='next-checkbox-wrapper checked '; showTbPage(); return; }else{ parentDom.parentNode.className='next-checkbox-wrapper '; let items = document.querySelectorAll('.Content--contentInner--QVTcU0M > div > a'); items.forEach(function(item){ item.parentNode.style='display:block'; }); } } function showTbPage(){ let items = document.querySelectorAll('.Content--contentInner--QVTcU0M > div > a'); items.forEach(function(item){ if(!item.href.match(/^https:\/\/item\.taobao\.com/)){ item.parentNode.style='display:none'; } }); } } positionQrcode(url,title){ var _this = this; let positionDivDom = document.createElement('div'); positionDivDom.id = this.className.positionQrcode; positionDivDom.style = 'right:'+_this.edgeLengthRight+'px'; let html = `
${title}
`; html += `
`; positionDivDom.innerHTML = html; document.body.appendChild(positionDivDom); _this.createQrcode(_this.className.positionQrcodeImg,url,142); let n=0; let timer = setInterval(function(){ let nextDom = positionDivDom?positionDivDom.nextElementSibling:false; let position = nextDom?(nextDom.style?(nextDom.style.position?nextDom.style.position:false):false):false; let bottom = nextDom?(nextDom.style?(nextDom.style.bottom?nextDom.style.bottom:false):false):false; let bottomValue = bottom?(bottom.match(/\d{1,4}/)?bottom.match(/\d{1,4}/):[0]):[0]; if(position && position=='fixed' && bottomValue[0] && parseInt(bottomValue[0]) < 180){ nextDom.style.display ='none'; } positionDivDom = nextDom?nextDom:positionDivDom; if(n==500){ clearInterval(timer); } n++; },10) } createQrcode(id,url,edgeLength){ var qrcode = new QRCode(id,{ width: edgeLength, height: edgeLength, colorDark : "#121212", colorLight : "#ffffff", correctLevel : QRCode.CorrectLevel.M }); qrcode.makeCode(url); } getCouponData(GMPrefix,url){ var _this = this; return new Promise((resolve,reject)=>{ (async function(){ let GMValue = GM_listValues(); if(GMValue.length>0){ GMValue.forEach(function(item){ if(item.startsWith(GMPrefix)){ let info = GM_getValue(item,false); if(info && new Date().getTime() - info.addTime > 3600*1000){ GM_deleteValue(item); } } }) } let GMValueName = GMPrefix+'_'+_this.goods_id; let info = GM_getValue(GMValueName,false); console.log('GM中数据:',info); if(!info){ let result = await _this.request('get',url); let data = JSON.parse(result); if(data.code==200){ data.addTime = new Date().getTime(); GM_setValue(GMValueName,data); resolve(data); }else{ console.log('服务端错误:',data); resolve(false) } }else{ resolve(info); } })() }) } tbCouponHtml(resp){ var _this = this; if(resp.code==200){ _this.coupon_info.amount = resp.data.youhuiquan; _this.coupon_info.link = `https://api.typechrome.com/code.php?link=${resp.data.code_url}`; let html = `
¥
${resp.data.youhuiquan}
${resp.data.coupon_info}
有效期
${resp.data.coupon_end_time}
`; document.getElementById(_this.className.zhm_div_s).innerHTML=html; _this.createQrcode(_this.className.tbqrcode,resp.data.code_url,67); _this.positionQrcode(resp.data.code_url,'淘宝/天猫APP扫码领券'); if(document.querySelector('.Actions--root--hwEujgc')){ document.querySelector('.Actions--root--hwEujgc').style="position:unset"; } (async function(){ let cssObj = await _this.getCssData(_this.nowName); for(let i=0;i{ let timer = setInterval(function(){ if(_this.goods_title){ clearInterval(timer); resolve(_this.goods_title); } }) }) } keywordSearch(){ var _this = this; (async function(){ let keywordData = [ { 'indexName':'jd', 'text':'京东', 'icon':'https://www.jd.com/favicon.ico' },{ 'indexName':'pdd', 'text':'拼多多', 'icon':'https://www.pinduoduo.com/homeFavicon.ico' },{ 'indexName':'vip', 'text':'唯品汇', 'icon':'https://www.vip.com/favicon.ico' },{ 'indexName':'tb', 'text':'淘宝', 'icon':'https://gw.alicdn.com/imgextra/i4/O1CN01qOI6vB1zaqrBKbyFr_!!6000000006731-73-tps-64-64.ico' } ]; let html = `
    `; html +=`
  • 找同款
  • `; keywordData.forEach(function(item){ html += `
  • ${item.text}`; html += `
      `; html +=`
    • ` html += `
      `; html += `
      `; html += `
      `; html += `加载中...
    • `; html += `
    `; html += `
  • `; }) html +=`
`; html +=`
`; let n=0; let timer = setInterval(function(){ if(_this.coupon_info.amount){ clearInterval(timer); let html = ''; html +=`
`; html +=`
当前商品领券立减
¥${_this.coupon_info.amount}
`; let navLiDom = document.createElement("li"); navLiDom.style='list-style: none;'; navLiDom.innerHTML = html; document.querySelector(`.${_this.className.keywordNav}`).appendChild(navLiDom); } if(n++>20){ clearInterval(timer); } },500); let keywordDom = document.createElement('div'); keywordDom.innerHTML = html; document.body.appendChild(keywordDom); let keywordTabList = document.querySelectorAll('.'+_this.className.keywordNavLiActive); keywordTabList.forEach(function(item){ item.className=''; item.addEventListener('mouseenter',function(){ keywordTabList.forEach(function(e){ e.className=''; e.nextElementSibling.className =_this.className.keywordGoodsList; }) item.className=_this.className.keywordNavLiActive; item.nextElementSibling.className=`${_this.className.keywordGoodsList} ${_this.className.keywordGoodsListActive}`; (async function(){ let keyword = await _this.keywordGoodTitle(); if(!keyword){console.log(_this.nowName+':页面商品名称未获取');return;} let platform = item.getAttribute('data'); let itemIcon = item.querySelector('img').src; let goodsListDom = document.querySelector(`#${platform}${_this.className.keywordGoodsUl}`); if(goodsListDom.innerText != '加载中...'){ return true; } let keywordUrl = `https://api.typechrome.com/goods_title_search.php?goods_title=${encodeURIComponent(keyword)}&platform=${platform}`; let resp = await _this.request('get',keywordUrl); let jsonData = JSON.parse(resp); var html = ''; if(jsonData.code==200){ let data = jsonData.data; let vipCurrentLineHeight = _this.nowName=='vip'?'line-height:18px':''; if(data[platform].length>0){ data[platform].forEach(function(e){ html +=``; html +=`
  • ¥${e.goods_price}`; if(e.goods_coupon){ html += `券后`; } html += `
    ${e.goods_title}
  • `; }) }else{ html +=`
  • 暂无商品
  • `; } }else{ html +=`
  • 暂无商品
  • `; } goodsListDom.innerHTML=html; })() }); item.nextElementSibling.addEventListener('mouseleave', function(e) { keywordTabList.forEach(function(e){ e.className=''; e.nextElementSibling.className =_this.className.keywordGoodsList; }) }) }); let keywordSearch = document.querySelector('.'+_this.className.keywordSearch); keywordSearch.addEventListener('mouseleave', function() { keywordTabList.forEach(function(e){ e.className=''; e.nextElementSibling.className =_this.className.keywordGoodsList; }) }); })() } } class PlayVideoClass extends BaseClass{ constructor(){ super(); } } class PlayMusicClass extends BaseClass{ constructor(){ super(); } xmlyCreateCheckbox(){ let soundListli = document.querySelectorAll('.sound-list ul li'); soundListli.forEach(function(item){ let checkboxed = item.querySelector('input'); if(checkboxed){ return; } let title = item.querySelector('.text'); if(!title){ return; }; title.style = "width:360px"; let src = title.querySelector('a').getAttribute('href'); let firstDom = item.querySelector('.icon-wrapper'); let inputDom = firstDom.cloneNode(true); inputDom.style= 'min-width: 0px;'; inputDom.innerHTML = ""; firstDom.before(inputDom); }) } } class ZhClass extends BaseClass{ constructor(){ super(); } showSpecialColumn(){ if(location.href == 'https://www.zhihu.com/'){ let cardRecommend = document.querySelectorAll('.Feed'); if(cardRecommend.length >0){ cardRecommend.forEach(function(item){ if(item.querySelector('.specialColumn')){ return; } let dataZop = JSON.parse(item.getAttribute('data-za-extra-module')); if(!dataZop)return; let type = dataZop.card.content.type; if(type == 'Post'){ let title = item.querySelector('div>div>h2>span>a'); if(!title)return; let newElement = document.createElement('button'); newElement.className = 'specialColumn Button VoteButton VoteButton--up'; newElement.style = 'line-height:20px;padding:0px 5px;margin-right:5px;border-radius:2px;'; newElement.innerText = '文章'; title.before(newElement); } }) } } if(location.href.match(/https?:\/\/www.zhihu.com\/search/)){ let n=0; let timer= setInterval(function(){ let cardSearch = document.querySelectorAll('.SearchResult-Card'); if(n++>600){ clearInterval(timer); } if(cardSearch.length >0){ clearInterval(timer); cardSearch.forEach(function(item){ if(item.querySelector('.specialColumn')){ return; } let dataZop = JSON.parse(item.getAttribute('data-za-extra-module')); if(!dataZop)return; let type = dataZop.card.content.type; console.log('search',type); if(type == 'Post'){ let title = item.querySelector('div>div>h2>span>div>a'); if(!title)return; let newElement = document.createElement('button'); newElement.className = 'specialColumn Button VoteButton VoteButton--up'; newElement.style = 'line-height:20px;padding:0px 5px;margin-right:5px;'; newElement.innerText = '文章'; title.before(newElement); } }) } }) } } showVideoTitle(){ if(location.href == 'https://www.zhihu.com/'){ let cardRecommend = document.querySelectorAll('.Feed'); if(cardRecommend.length >0){ cardRecommend.forEach(function(item){ if(item.querySelector('.videoTitle')){ return; } let dataZop = JSON.parse(item.getAttribute('data-za-extra-module')); if(!dataZop)return; let hasVideo = dataZop.card.has_video; if(hasVideo == true){ let title; if(item.querySelector('div>div>h2>div>a')){ title = item.querySelector('div>div>h2>div>a'); }else if(item.querySelector('div>div>h2>span>a')){ title = item.querySelector('div>div>h2>span>a'); }else{ return; } let newElement = document.createElement('button'); newElement.className = 'videoTitle'; newElement.style = 'background: rgba(255, 131, 86, 0.12);color: rgb(255, 73, 12);line-height:20px;padding:1px 6px;margin-right:5px;border-radius:2px;font-size:14px;'; newElement.innerText = '视频'; title.before(newElement); } }) } } if(location.href.match(/https?:\/\/www.zhihu.com\/search/)){ let n=0; let timer= setInterval(function(){ let cardSearch = document.querySelectorAll('.SearchResult-Card'); if(n++>600){ clearInterval(timer); } if(cardSearch.length >0){ clearInterval(timer); cardSearch.forEach(function(item){ if(item.querySelector('.videoTitle')){ return; } let dataZop = JSON.parse(item.getAttribute('data-za-extra-module')); if(!dataZop)return; let type = dataZop.card.content.type; if(type == 'Zvideo' ){ let title = item.querySelector('div>div>h2>span>div>a'); if(!title)return; let newElement = document.createElement('button'); newElement.className = 'videoTitle'; newElement.style = 'background: rgba(255, 131, 86, 0.12);color: rgb(255, 73, 12);line-height:20px;padding:1px 6px;margin-right:5px;border-radius:2px;font-size:14px;'; newElement.innerText = '视频'; title.before(newElement); } }) } }) } } 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,.Pc-word{display:none !important;}.TopstoryItem--advertCard{display:none !important}`; domStyle .appendChild(document.createTextNode(zhHideAD)); domHead.appendChild(domStyle); } downloadVideo(){ var _this = this; let videTimer= setInterval(function(){ let videoDom = document.querySelectorAll('video'); if(videoDom.length>0){ for(let i=0;i div:first-child'); if(!videoItemDom)continue; if(videoItemDom.className == 'downloadVideo')continue; let zhmVideoItemDom = videoItemDom.cloneNode(true); zhmVideoItemDom.querySelector('._1tg8oir').innerText='下载'; zhmVideoItemDom.setAttribute('class','downloadVideo'); videoItemDom.before(zhmVideoItemDom); zhmVideoItemDom.addEventListener('click',function(e){ let videoName = new Date().getTime()+'.mp4'; BaseClass.LR_download(videoPlayUrl,videoName); }) } } },1000); } removeRight(){ if(location.href.match(/^https?:\/\/www\.zhihu\.com\/people\/.*/)){ return false; } let zhFullScreen = `.GlobalSideBar {display: none !important;} .css-1qyytj7{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;} .AuthorInfo{max-width:1000px !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 && 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'; } } }) }) } removeAuthorName(){ var GMAuthorName = GM_getValue('inputZhAuthorName','0'); if(GMAuthorName == '0' || GMAuthorName == '') return; let authorName = GMAuthorName.split(','); if(location.href.match(/^https?:\/\/www.zhihu.com\/search/)){ let n=0; let timer = setInterval(function(){ let userLink = document.querySelectorAll('.Card'); if(userLink.length > 5){ clearInterval(timer); userLink.forEach(function(item){ let author = item.querySelector('b'); if(author){ if(authorName.indexOf(author.innerText) != -1){ item.style = 'display:none'; } } }) }else if(n>30){ clearInterval(timer); }else{ n++; } },100) } if(location.href.match(/^https?:\/\/www.zhihu.com\/question\/.*/)){ let itemDom = document.querySelectorAll('.List-item'); if(itemDom.length>0){ itemDom.forEach(function(item){ let content = item.querySelector('.ContentItem'); if(content){ let dataZop = JSON.parse(content.getAttribute('data-zop')); if(authorName.indexOf(dataZop.authorName) != -1){ item.style = 'display:none'; } } }) } } if(location.href == 'https://www.zhihu.com/question/waiting'){ setTimeout(function(){ let questionList = document.querySelectorAll('.jsNavigable'); if(questionList.length>0){ questionList.forEach(function(item){ let authorDomText = item.querySelector('.css-tnsaxh').innerText; if(authorDomText){ let author = authorDomText.replace('"','').replace('的提问','').replace(/(^\s+)|(\s+$)/g,''); if(author){ if(authorName.indexOf(author) != -1){ item.style='display:none;'; } } } }) } },300) } if(location.href == 'https://www.zhihu.com/'){ let content = document.querySelectorAll('.ContentItem'); content.forEach(function(value){ let dataZop = JSON.parse(value.getAttribute('data-zop')); if(authorName.indexOf(dataZop.authorName) != -1){ let itemCard = value.parentNode.parentNode.parentNode; if(itemCard){ itemCard.style='display:none'; } } }) } let n=0; let timerCloseAuthor = setInterval(function(){ let commentDom = document.querySelector('.Comments-container')?document.querySelector('.Comments-container'):document.querySelector('.css-34podr'); if(commentDom){ let commentLi = commentDom.querySelectorAll('.css-1frn93x>div>div'); if(commentLi[0].className=='css-194v73m'){ commentLi.forEach(function(item){ let commentAuthorNameDom = item.querySelector('.css-1rd0h6f'); let commentAuthorName = commentAuthorNameDom.innerText; if(authorName.indexOf(commentAuthorName) != -1){ item.style = 'display:none'; } }) } } }) } removeYanxuan(){ if(location.href.match(/^https?:\/\/www.zhihu.com\/question\/.*/)){ let itemDom = document.querySelectorAll('.List-item'); if(itemDom.length>0){ itemDom.forEach(function(item){ let content = item.querySelector('.KfeCollection-OrdinaryLabel-content'); if(content && content.innerText.indexOf('盐选') != -1){ item.style = 'display:none'; } }) } let answerCard = document.querySelector('.AnswerCard'); if(answerCard){ let content = answerCard.querySelector('.KfeCollection-OrdinaryLabel-content'); if(content && content.innerText.indexOf('盐选') != -1){ answerCard.style = 'display:none'; } } } if(location.href.match(/^https?:\/\/www.zhihu.com\/search/)){ let num = 0; let timer = setInterval(function(){ let cardList = document.querySelectorAll('.Card'); if(cardList.length > 5){ clearInterval(timer); cardList.forEach(function(item){ let type = item.querySelector('.KfeCollection-PcCollegeCard-type'); if(type && type.innerText.indexOf('盐选专栏') != -1){ item.style = 'display:none'; } let author = item.querySelector('b'); let authorYanxuan = ['故事档案局', '盐选推荐', '盐选科普', '盐选成长计划', '知乎盐选会员', '知乎盐选创作者', '盐选心理', '盐选健康必修课', '盐选奇妙物语', '盐选生活馆', '盐选职场', '盐选文学甄选', '盐选作者小管家', '盐选博物馆', '盐选点金', '盐选测评室', '盐选科技前沿', '盐选会员精品', '历史环游记']; if(author && authorYanxuan.indexOf(author.innerText) != -1){ item.style = 'display:none'; } }) }else if(num>30){ clearInterval(timer); }else{ num++; } },100) } if(location.href == 'https://www.zhihu.com/'){ let content = document.querySelectorAll('.ContentItem'); content.forEach(function(item){ let content = item.querySelector('.KfeCollection-OrdinaryLabel-content'); if(content && content.innerText.indexOf('盐选') != -1){ item.style = 'display:none'; } }) } } closeAuthor(){ let timerCloseAuthor = setInterval(function(){ let zhmCloseAuthorButton = document.querySelector('#zhmCloseAuthorButton'); if(zhmCloseAuthorButton)return; let authorInfo = document.querySelector('.css-1rd6ukm'); if(authorInfo){ let userNameInfo = authorInfo.querySelector('.UserLink'); if(userNameInfo){ let userLinkInfo = userNameInfo.querySelector('.UserLink-link'); let authorNameLink = userLinkInfo.innerText; let GMAuthorName = GM_getValue('inputZhAuthorName'); let authorArray = GMAuthorName?GMAuthorName.split(','):''; let buttonClose = document.createElement('button'); buttonClose.innerHTML = authorArray.indexOf(authorNameLink) != -1?'已屏蔽':'屏蔽用户'; buttonClose.style = buttonClose.innerHTML == '已屏蔽'?'position:absolute;right:10px;background-color:#ff2e4d;border-color:#ff2e4d':'position:absolute;right:10px'; buttonClose.className='Button FollowButton FEfUrdfMIKpQDJDqkjte Button--primary Button--blue epMJl0lFQuYbC7jrwr_o JmYzaky7MEPMFcJDLNMG'; buttonClose.setAttribute('id','zhmCloseAuthorButton'); userNameInfo.appendChild(buttonClose); userNameInfo.parentNode.style='line-height:35px'; buttonClose.addEventListener('click',function(){ let zhmAuthorName; if(buttonClose.innerHTML=='已屏蔽'){ for(let i=0;i0 && videoContainer.children[0].src?videoContainer.children[0].src:videoContainer.src; let videoId; let resp = url.match(/^(https:)?\/\/.+\.com\/([a-zA-Z0-9]+)\/[a-zA-Z0-9]+\/video/); let res = url.match(/blob:https:\/\/www.douyin.com\/(.*)/); if(resp && resp[2]){ videoId=resp[2]; }else if(res && res[1]){ videoId=res[1] }else{ videoId = videoContainer.getAttribute('data-xgplayerid') } let playContainer = videoContainer.parentNode.parentNode.querySelector('.xg-right-grid'); if(!playContainer)return; let videoDownloadDom = playContainer.querySelector('#zhmDyDownload'+videoId); if(videoDownloadDom){ let dom = playContainer.querySelectorAll('.xgplayer-playclarity-setting'); for(let n=0;n${item.name}
    `; }) if(downloadDom.querySelector('.virtual')){ downloadDom.querySelector('.virtual').innerHTML = downloadHtml; } playClarityDom.after(downloadDom); let toLinkDom = playContainer.querySelector('#toLink'+videoId); if(toLinkDom){ toLinkDom.addEventListener('click',function(){ if(url.match(/^blob/)){ BaseClass.toast('加密视频地址,无法直接打开'); }else{ window.open(url); } }) } let toDownloadDom = playContainer.querySelector('#toDownload'+videoId); if(toDownloadDom){ toDownloadDom.addEventListener('click',function(){ if(url.match(/^blob/)){ BaseClass.toast('加密视频地址,无法下载'); }else{ BaseClass.toast('正在下载请稍侯'); let infoDom = playContainer.parentNode.parentNode.parentNode.querySelector('.video-info-detail'); let descInfo = infoDom?infoDom:document.querySelector('.z8_VexPf'); let filename; if(descInfo && descInfo.innerText && descInfo.innerText.replaceAll('.','')){ filename = descInfo.innerText.replaceAll('.','')+'.mp4'; }else{ filename = new Date().getTime()+'.mp4'; } BaseClass.LR_download(url,filename); } }) } let toCopyDom = playContainer.querySelector('#toCopy'+videoId); if(toCopyDom){ toCopyDom.addEventListener('click',function(){ BaseClass.toast('已复制到剪贴板'); GM_setClipboard(url); }) } } },100) } ksVideoDownload(){ var _this = this; window.addEventListener('load',function(){ async function getControls(){ let videoDomArr = await BaseClass.getElement('.player-video',1); if(!videoDomArr){ console.log('没有找到DOM');return; } let videoDom = videoDomArr.length>2?videoDomArr[1]:videoDomArr[0]; 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('#toDownload').addEventListener('click',function(){ BaseClass.toast('正在下载请稍侯'); let playTimeTotal = document.querySelector('.total').innerText; let second = playTimeTotal.match(/(.+):(.+)/); let secondTotal = second[1]*60+parseInt(second[2]); let dataUrl = document.querySelector('#zhmKsDownload').getAttribute('data-url'); let account = document.querySelector('.profile-user-name-title')?document.querySelector('.profile-user-name-title').innerText:document.querySelector('.feed-author').innerText; let title = document.querySelector('.video-info-title')?document.querySelector('.video-info-title').innerText:new Date().getTime(); let videoFileName = (account && title)?account+'-'+title+'.mp4':new Date().getTime()+'.mp4'; BaseClass.LR_download(dataUrl,videoFileName); }) document.querySelector('#toCopy').addEventListener('click',function(){ BaseClass.toast('已复制到剪贴板'); GM_setClipboard(videoDom.getAttribute('src')); }) document.querySelector('#toLink').addEventListener('click',function(){ window.open(videoDom.getAttribute('src')); }) } getControls(); document.addEventListener('click',function(e){ getControls(); }) window.addEventListener("wheel",getControls); window.addEventListener('keydown',function(e){ if(e.code=='ArrowDown' || e.code=='ArrowUp'){ getControls(); } }) }) } createKsVideoDownload(videoDom){ let match = /^https?:\/\/www\.kuaishou\.com\/(.+)/; let resp = location.href.match(match); if(!resp || (resp[1].indexOf('short-video') == -1 && resp[1].indexOf('video') ==-1 && resp[1].indexOf('new-reco') == -1)){ console.log('当前不是视频播放页');return; } if(resp[1].indexOf('short-video') != -1){ 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]-320+'px'; let timeTotal = document.querySelector('.total'); timeTotal.style.right='180px'; } 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.querySelector('.kwai-player-volume-sound').innerHTML="
    下载
    "; let slider = xgIcon.querySelector('.pl-slider'); let downloadList = ''; downloadOption.forEach(function(item){ downloadList += `
    ${item.name}
    `; }) slider.innerHTML = downloadList; xgIcon.setAttribute('data-url',linkUrl); xgIcon.setAttribute('id','zhmKsDownload'); xgIcon.style='height:80px;'; detailDom.before(xgIcon); xgIcon.onmouseover=function(){ slider.style= 'margin-top:10px;width:49px;padding:10px 5px 20px;display:block !important'; } xgIcon.onmouseout=function(){ slider.style='display:none !important'; } return; let zhmKsButton = document.querySelector('#zhmKsButton'); if(zhmKsButton){ return false; } let buttonIcon = detailDom.cloneNode(true); buttonIcon.setAttribute('id','zhmKsButton'); let buttonIconImg = buttonIcon.querySelector('.unmuted-icon'); if(buttonIconImg){ 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'); if(autoPlay){ autoPlay.style.margin='0px 40px 0px 0px'; } let buttonFive = controls.querySelector('div:nth-of-type(5)'); if(buttonFive){ 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) } plSlider.appendChild(buttonFive); } let buttonSix = controls.querySelector('div:nth-of-type(6)'); if(buttonSix){ 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(buttonSix); } plSlider.appendChild(buttonFour); } xiguaVideoDownload(){ var _this = this; window.addEventListener('load',function(){ async function getControls(){ let videoDom = await BaseClass.getElement('video'); if(!videoDom){ console.log('没有找到DOM');return; } _this.createXiguaVideoDownload(); GM_xmlhttpRequest({ method: "get", url: 'http://47.99.158.118/video-crack/v2/parse?content='+encodeURIComponent(location.href), data: '', headers: {'Accept': 'text/plain, text/html,application/json'}, onload: function(res){ console.log(res); if(res.status==200){ let resp = JSON.parse(res.responseText) let videoSrc = ''; if(resp.code == 0){ videoSrc = resp.data.url; } console.log(videoSrc); document.querySelector('#toDownload').addEventListener('click',function(){ if(!videoSrc){ BaseClass.toast('该视频无法下载'); return; } let videoTitle = document.querySelector('.videoTitle h1').innerText; let videoAuthor = document.querySelector('.author__userName').title; BaseClass.toast('正在下载请稍侯'); BaseClass.LR_download(videoSrc,videoTitle+'@'+videoAuthor+'.mp4'); }) document.querySelector('#toCopy').addEventListener('click',function(){ if(!videoSrc){ BaseClass.toast('该视频不能复制地址'); return; } BaseClass.toast('已复制到剪贴板'); GM_setClipboard(videoSrc); }) document.querySelector('#toLink').addEventListener('click',function(){ if(!videoSrc){ BaseClass.toast('该视频不能直接打开'); return; } window.open(videoSrc); }) document.addEventListener('click',function(e){ e.path.forEach(function(item){ if(item.className == 'xgplayer-control-item control_playnext common-control-item'){ setTimeout(function(){ location.reload(); return; },1000) }; }) var objLink = {}; e.path.forEach(function(item){ if(item.href){ objLink.href = item.href?item.href:''; objLink.target = item.target?item.target:''; return; } }) if(objLink.href && objLink.target != '_blank'){ location.href = objLink.href; return; } }) } }, onerror : function(err){ console.log('error') console.log(err) } }); document.querySelector('video').addEventListener('ended',function(){ console.log("播放结束"); setTimeout(function(){ location.reload(); },5500); }, false); } getControls(); }) } createXiguaVideoDownload(){ let rightGrid = document.querySelector('.xg-right-grid'); let playControl = rightGrid.querySelector('div:nth-of-type(2)'); let control = playControl.cloneNode(true); let entry= control.querySelector('.xgplayer-control-item__entry'); entry.innerHTML = '
    下载
    '; let popover = control.querySelector('.xgplayer-control-item__popover'); let downloadList = ''; popover.innerHTML = downloadList; playControl.before(control); let divDom = document.createElement('div'); divDom.style="width: 80px; height: 140px;position:absolute;bottom:40px;left:20px;z-index:-1"; control.appendChild(divDom); control.onmouseover=function(){ popover.style.display='block'; } control.onmouseout=function(){ popover.style.display='none'; } } biliVideoDownload(){ var _this = this; window.addEventListener('load',function(){ async function getControls(){ if(location.href.indexOf('bangumi') != -1){ let rightControl = await BaseClass.getElement('.squirtle-controller-wrap-right'); if(!rightControl){ console.log('没有找到DOM');return; } _this.createBiliVideoDownload(); }else{ let n=0; let timer = setInterval(function(){ let dom = document.querySelector('.bilibili-player-video-btn-quality'); let domOther = document.querySelector('.bpx-player-ctrl-quality'); if(dom){ clearInterval(timer); _this.createBiliVideoDownload(); return; }else if(domOther){ clearInterval(timer); _this.createBiliVideoDownloadOther(); return; }else{ if(n++>30)clearInterval(timer); } },100) return; } let timerZhmIcon = setInterval(function(){ let videoDom = [{name:'video',type:'dom'},{name:'bwp_video',type:'dom'},{name:'.bilibili-player-video',type:'class'}]; for(let i = 0;i"; let zhmPlay = document.getElementById(_this.className.zhmlogo); let playLineDom = document.createElement('div'); playLineDom.className = `${_this.className.playLineDiv} ${_this.className.zhm_play_video_wrap}`; playLineDom.style.display = 'none'; playLineDom.innerHTML = _this.zhmHTML(playWrapHtml); zhmPlay.appendChild(playLineDom); let playLineTd = document.querySelectorAll('.'+_this.className.playLineTd); playLineTd.forEach(function(item){ item.addEventListener('click',function(){ window.open(item.getAttribute('url')+location.href); }) }) document.querySelector('.'+_this.className.playButton).onmouseover=()=>{ document.querySelector("."+_this.className.playLineDiv).style.display='block'; } document.querySelector('.'+_this.className.playButton).onmouseout=()=>{ document.querySelector("."+_this.className.playLineDiv).style.display='none'; } _this.zhmLogoDrag('youtube',''); }else{ let zhmIcon = document.querySelector('#'+_this.className.zhmIcon); if(zhmIcon){ zhmIcon.parentNode.removeChild(zhmIcon); } let zhmlogo = document.querySelector('#'+_this.className.zhmlogo); if(zhmlogo){ zhmlogo.style.opacity=0; } } },500) } } var allWeb = [...getCoupon,...jxVideo,...jxMusic,...zhNice,...taobao,...videoDownload,...blackmode]; var nowWeb=[]; allWeb.forEach(function(item){ if(item.isOpen == 0) return true; item.web.forEach(function(val){ try{ let result = top.location.href.match(val.match); if(result){ nowWeb.push(val); } }catch(err){ } }) }) let baseClass = new BaseClass(); nowWeb.forEach(function(item){ switch(item.funcName){ case 'coupon': couponFunc(item); break; case 'playVideo': playVideoFunc(); break; case 'playMusic': playMusicFunc(item); break; case 'zhNice': zhNiceFunc(); break; case 'videoDownload': var videoDownloadClass = new VideoDownloadClass(); var {funcName,match:nowMatch,node:nowNode,name:nowName} = item; if(item.isWebOpen == 0){ console.log(item.name+'已关闭');return; }else{ videoDownloadClass[nowName](); } break; case 'taobaoSearch': taobaoSearchFunc(item) break; case 'blackmode': blackmodeFunc(); break; } }) function couponFunc(item){ var couponClass = new CouponClass(); couponClass.nowName = item.name; couponClass[item.name](); } function playVideoFunc(){ var playVideoClass = new PlayVideoClass(); if(GM_getValue('movieList','22')==0){ return false; } playVideoClass.zhmLogo(); if(GM_getValue('playVideoLineText')){ let lineObj = playVideoClass.getLine(GM_getValue('playVideoLineText')); if(lineObj){ playLine = lineObj } } let playWrapHtml = `
    `; playWrapHtml +=`
      `; playLine.forEach(function(item){ let selected = ''; if(playVideoClass.getCookie('playLineAction') == item.url){ selected = playVideoClass.className.zhm_line_selected; } playWrapHtml +=`
    • ${item.name}
    • `; }) playWrapHtml += "
    "; let zhmPlay = document.getElementById(playVideoClass.className.zhmlogo); let playLineDom = document.createElement('div'); playLineDom.className = `${playVideoClass.className.playLineDiv} ${playVideoClass.className.zhm_play_video_wrap}`; playLineDom.style.display = 'none'; playLineDom.innerHTML = playWrapHtml; zhmPlay.appendChild(playLineDom); let playJxHtml = `
    `; playJxHtml += "
    "; let jxVideoData = [ {funcName:"playVideo", node:".player__container" ,match:/https:\/\/v.qq.com\/x\/cover\/[a-zA-Z0-9]+.html/,areaClassName:'playlist-list',name:'qqPC'}, {funcName:"playVideo", node:"#player-container" ,match:/https:\/\/v.qq.com\/x\/cover\/[a-zA-Z0-9]+\/[a-zA-Z0-9]+.html/,areaClassName:'playlist-list',name:'qqPC'}, {funcName:"playVideo", node:".container-player" ,match:/v\.qq\.com\/x\/page/,areaClassName:'mod_episode'}, {funcName:"playVideo", node:"#video,.iqp-player",match:/^https:\/\/www\.iqiyi\.com\/[vwa]\_/,areaClassName:'qy-episode-num',name:'iqiyiPc'}, {funcName:"playVideo", node:".m-video-player-wrap",match:/^https:\/\/m.iqiyi\.com\/[vwa]\_/,areaClassName:'m-sliding-list'}, {funcName:"playVideo", node:".intl-video-wrap",match:/^https:\/\/www\.iq\.com\/play\//,areaClassName:'m-sliding-list'}, {funcName:"playVideo", node:"#player",match:/v\.youku\.com\/v_show\/id_/,areaClassName:'new-box-anthology-items'}, {funcName:"playVideo", node:"#player",match:/v\.youku\.com\/v_play\/id_/}, {funcName:"playVideo", node:"#bilibili-player",nodeType:'id',match:/www\.bilibili\.com\/video/,name:'biliPc',areaClassName:'video-episode-card'}, {funcName:"playVideo", node:".bpx-player-primary-area",nodeType:'id',match:/www\.bilibili\.com\/bangumi/,areaClassName:'eplist_ep_list_wrapper__PzLHa'}, {funcName:"playVideo", node:"#mgtv-player-wrap",nodeType:'id',match:/^https?:\/\/www.mgtv\.com\/b|l\/[0-9]/,areaClassName:'episode-items'}, {funcName:"playVideo", node:".x-player",nodeType:'class',match:/tv\.sohu\.com\/v/,areaClassName:'series-tab_pane'}, {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:"#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:"#player",nodeType:'id',match:/vip\.1905.com\/play\//}, {funcName:"playVideo", node:"#vodPlayer",nodeType:'id',match:/www\.1905.com\/vod\/play\//}, ]; let jxVideoWeb = jxVideoData.filter(function(item){ return location.href.match(item.match); }) playVideoClass.zhmLogoDrag('video',jxVideoWeb); if(jxVideoWeb.length > 0){ var {funcName,match:nowMatch,node:nowNode,name:nowName} = jxVideoWeb[0]; document.querySelector('.'+playVideoClass.className.playButton).onmouseover=()=>{ document.querySelector('.'+playVideoClass.className.playLineDiv).style.display='block'; } document.querySelector('.'+playVideoClass.className.playButton).onmouseout=()=>{ document.querySelector('.'+playVideoClass.className.playLineDiv).style.display='none'; } var playLineTd = document.querySelectorAll('.'+playVideoClass.className.playLineTd); playLineTd.forEach(function(item){ item.addEventListener('click',function(){ playLineTd.forEach(function(e){ e.setAttribute('class',`${playVideoClass.className.playLineTd} ${playVideoClass.className.zhm_play_video_line_ul_li}`); }) this.setAttribute('class',`${playVideoClass.className.playLineTd} ${playVideoClass.className.zhm_play_video_line_ul_li} ${playVideoClass.className.zhm_line_selected}`); playVideoClass.setCookie('playLineAction',this.getAttribute('url'),30); if(GM_getValue('videoPlayLineAdd') != 22){ let arrNowNode = nowNode.split(','); let nowWebNode; for(let i=0;i 0){ listItem.forEach(function(item){ item.addEventListener('click',function(){ let link = this.getAttribute('href'); if(link){ location.href = link; return; } }) }); } } setTimeout(function(){ let videoSelect = document.querySelectorAll('.'+jxVideoWeb[0].areaClassName); if(videoSelect.length==0){console.log('该网站播放区类名改变');return;} videoSelect.forEach(function(item){ item.addEventListener('click',function(e){ setTimeout(function(){ location.href=location.href; },1000) }); }); },2000); } } function playMusicFunc(){ if(self.frameElement && self.frameElement.tagName == "IFRAME"){ return; } var playMusicClass = new PlayMusicClass(); console.log(playMusicClass.className); var musicId = Math.ceil(Math.random()*100000000); var newUrl = location.href; let jxMusicWeb = jxMusic[0].web.filter(function(item){ return newUrl.match(item.match); }) if(jxMusicWeb.length){ let timerZhmIcon = setInterval(function(){ if (document.querySelector('#'+playMusicClass.className.zhmIcon)){ clearInterval(timerZhmIcon); if(jxMusicWeb[0].name=='kuwo'){ setTimeout(function(){ let control = document.querySelector('.icon-bar_icon_download_'); let icon = control.cloneNode(true); icon.className = ''; icon.style='margin-left:10px;'; icon.innerHTML = "下载"; let controls = document.querySelector('.col_r'); controls.before(icon); document.querySelector('#kuwoDownload').addEventListener('click',function(){ let audioSrc = document.querySelector("audio").src; let songName = document.querySelector('.control .song_name').title; let artist = document.querySelector('.control .artist').title; BaseClass.LR_download(audioSrc,songName+'-'+artist+'.mp3'); }) },2000) } if(jxMusicWeb[0].name=='ximalaya'){ setTimeout(function(){ let xmControls = document.querySelector('.xm-player-oprations'); let control = xmControls.querySelector('a:nth-of-type(2)'); let icon = control.cloneNode(true); icon.innerHTML = "下载"; xmControls.style='position: relative;margin-left:-20px;'; document.querySelector('.xm-player-progress').style.width='450px'; document.querySelector('.xm-player-playtime').style='position: absolute;right:40px;'; xmControls.prepend(icon); document.querySelector('#ximaDownload').addEventListener('click',function(){ let fmTitle = document.querySelector('.fm-title'); let fmTitleMatch = fmTitle.href.match(/^https?:\/\/www\.ximalaya\.com\/sound\/(\S*)$/); let url = 'https://mobile.ximalaya.com/mobile-playpage/track/v3/baseInfo/'+new Date().getTime()+'?device=web&trackId='+fmTitleMatch[1]; playMusicClass.request('get',url).then((result)=>{ let data = JSON.parse(result); let playUrl = data.trackInfo.playUrlList[1].url; let str1 = playUrl.replaceAll('-','+'); let str2 = str1.replaceAll('_','/'); let num = str2.length%4; if(num){ str2 += '===='.substr(num); } let decrypted = CryptoJS.AES.decrypt({ ciphertext: CryptoJS.enc.Base64.parse(str2) }, CryptoJS.enc.Hex.parse("aaad3e4fd540b0f79dca95606e72bf93"), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).toString(CryptoJS.enc.Utf8); console.log(decrypted); if(decrypted){ BaseClass.LR_download(decrypted,data.trackInfo.title+'.mp3'); }else{ console.log('解密地址失败'); } }) }) let timer = setInterval(function(){ let urlMatch = location.href.match(/^https:\/\/www.ximalaya.com\/album\/[0-9]+/); if(urlMatch){ let soundList = document.querySelector('#anchor_sound_list'); if(soundList){ let soundListHead = soundList.querySelector('.head'); let soundListHeadTitle = soundListHead.querySelector('.sort').lastChild; let batchDownloadDom = document.querySelector('#batchDownload'); if(!batchDownloadDom){ let data = [{name:'批量下载',id:'batchDownload'},{name:'重置',id:'reset'},{name:'全选',id:'selectAll'}]; data.forEach(function(item){ let control = soundListHeadTitle.cloneNode(true); control.setAttribute('id',item.id); control.innerText = item.name; soundListHeadTitle.after(control); control.before(" | "); }); document.querySelector('#selectAll').addEventListener('click',function(){ let zhmCheckbox = soundList.querySelectorAll("input[name='zhmCheckbox']"); zhmCheckbox.forEach(function(item){ if(!item.checked){ item.checked=true; } }) }); document.querySelector('#reset').addEventListener('click',function(){ let zhmCheckbox = soundList.querySelectorAll("input[name='zhmCheckbox']"); zhmCheckbox.forEach(function(item){ item.checked = false; }) }) soundListHead.querySelector('.sort').firstChild.addEventListener('click',function(){ setTimeout(function(){ playMusicClass.xmlyCreateCheckbox(); },2000) }); soundListHeadTitle.addEventListener('click',function(){ setTimeout(function(){ playMusicClass.xmlyCreateCheckbox(); },2000) }); document.querySelector('#batchDownload').addEventListener('click',function(){ let zhmCheckbox = soundList.querySelectorAll("input[name='zhmCheckbox']"); zhmCheckbox.forEach(function(item){ if(item.checked){ let scrMatch = item.value.match(/\/sound\/([0-9]+)/); let url = 'https://mobile.ximalaya.com/mobile-playpage/track/v3/baseInfo/'+new Date().getTime()+'?device=web&trackId='+scrMatch[1]; playMusicClass.request('get',url).then((result)=>{ let data = JSON.parse(result); let playUrl = data.trackInfo.playUrlList[1].url; let str1 = playUrl.replaceAll('-','+'); let str2 = str1.replaceAll('_','/'); let num = str2.length%4; if(num){ str2 += '===='.substr(num); } let decrypted = CryptoJS.AES.decrypt({ ciphertext: CryptoJS.enc.Base64.parse(str2) }, CryptoJS.enc.Hex.parse("aaad3e4fd540b0f79dca95606e72bf93"), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).toString(CryptoJS.enc.Utf8); if(decrypted){ BaseClass.LR_download(decrypted,data.trackInfo.title+'.mp3'); }else{ console.log('解密地址失败'); } }) } }) }) } let zhmCheckbox= document.querySelectorAll('.zhmCheckbox'); if(zhmCheckbox.length == 0){ playMusicClass.xmlyCreateCheckbox(); } let pageBar = document.querySelector('.pagination-page'); if(pageBar){ pageBar.addEventListener('click',function(){ setTimeout(function(){ playMusicClass.xmlyCreateCheckbox(); },2000) }) } let pageLink = document.querySelector('button[type=submit]'); if(pageLink){ pageLink.addEventListener('click',function(){ setTimeout(function(){ playMusicClass.xmlyCreateCheckbox(); },1000) }) } } }else{ console.log('未匹配到列表地址'); } },500) },1000); document.addEventListener('click',function(e){ var objLink = {}; e.path.forEach(function(item){ if(item.href){ objLink.href = item.href?item.href:''; objLink.target = item.target?item.target:''; return; } }) if(objLink.href && objLink.target != '_blank'){ location.href = objLink.href; return; } }) } if(jxMusicWeb[0].name=='kugou'){ let aDom = document.querySelectorAll('a'); aDom.forEach(function(item){ let dataObj = item.getAttribute('dataobj'); if(dataObj){ item.removeAttribute('dataobj'); item.setAttribute('target','_blank'); } }) if(couponUrl.indexOf('mixsong')!=-1 || couponUrl.indexOf('song') != -1 || couponUrl.indexOf('share') != -1){ setTimeout(function(){ let volumeDom = document.querySelector('#volume'); let downloadDom = volumeDom.cloneNode(true); downloadDom.removeAttribute('id'); downloadDom.style='margin-top:30px'; downloadDom.innerHTML = "下载"; volumeDom.before(downloadDom); volumeDom.style='left:50px;'; document.querySelector('#mode').style='margin-left:90px;'; document.querySelector('#pb_download').style='margin-left:130px;'; document.querySelector('#pb_share').style='margin-left:170px;'; document.querySelector('#list').style='right:-20px;'; document.querySelector('#kugouDownload').addEventListener('click',function(){ let audio = document.querySelector('#myAudio'); let audioSrc = audio.getAttribute('src'); let singerName = document.querySelector('.singerName').title; let songName = document.querySelector('#songNameTemp').title; BaseClass.LR_download(audioSrc,songName+'-'+singerName.substr(0,singerName.length-1)+'.mp3'); }) },1000) } console.log(couponUrl); } if(jxMusicWeb[0].name=='netease' && location.href == 'https://music.163.com/st/download'){ return false; } let zhmPlay = document.getElementById(playMusicClass.className.zhmIcon); setTimeout(function(){ playMusicClass.zhmLogo(); playMusicClass.zhmLogoDrag('music',jxMusicWeb); },iconWaitTime); }else{ playMusicClass.createElement('div',playMusicClass.className.zhmIcon); } }) }else{ let zhmPlayDom = document.querySelector('#'+playMusicClass.className.zhmIcon); if(zhmPlayDom){ zhmPlayDom.parentNode.removeChild(zhmPlayDom); } console.log('当前音频网址没有添加匹配或匹配错误'); } } function zhNiceFunc(){ var zhClass = new ZhClass(); (async function(){ let loginModalWrapper = await BaseClass.getElement(".Modal-wrapper"); if(loginModalWrapper){ let closeButton = loginModalWrapper.querySelector('.Modal-closeButton'); if(closeButton){ closeButton.click(); } } })() var zhData = [ {func:'removeVideo',isOpen:GM_getValue('removeVideo','0'),isOnscroll:1,onload:1}, {func:'removeAD',isOpen:GM_getValue('removeAD','22'),isOnscroll:0,onload:0}, {func:'downloadVideo',isOpen:GM_getValue('downloadVideo','22'),isOnscroll:0,onload:0}, {func:'removeRight',isOpen:GM_getValue('removeRight','0'),isOnscroll:0,onload:0}, {func:'changeLink',isOpen:GM_getValue('changeLink','22'),isOnscroll:0,onload:0}, {func:'removeKeyword',isOpen:GM_getValue('removeKeyword','0'),isOnscroll:1,onload:1}, {func:'showSpecialColumn',isOpen:GM_getValue('specialColumn','22'),isOnscroll:1,onload:1}, {func:'showVideoTitle',isOpen:GM_getValue('videoTitle','22'),isOnscroll:1,onload:1}, {func:'removeAuthorName',isOpen:GM_getValue('removeAuthorName',22),isOnscroll:1,onload:1}, {func:'removeYanxuan',isOpen:GM_getValue('removeYanxuan','0'),isOnscroll:1,onload:1}, {func:'closeAuthor',isOpen:GM_getValue('removeAuthorName',22),isOnscroll:0,onload:1}, ] zhData.forEach(function(item){ if(item.isOpen==22 && item.onload==0){ zhClass[item.func](); } }) window.onload=function(){ zhData.forEach(function(item){ if(item.isOpen==22 && item.onload==1){ zhClass[item.func](); } }) } window.onscroll = function(){ var scrollTop = document.documentElement.scrollTop; if(scrollTop > 200){ zhData.forEach(function(item){ if(item.isOpen==22 && item.isOnscroll==1){ zhClass[item.func](); } }) } } } function taobaoSearchFunc(item){ let timer = setInterval(function(){ let dom = document.querySelector('#selectTb'); if(!dom){ let selectsDom =document.querySelector('.next-checkbox-group'); if(selectsDom){ let labels = selectsDom.querySelectorAll('label'); labels.forEach(function(item){ let itemText = item.querySelector('span:last-child').innerText; if(itemText=='天猫'){ let tbLabels = item.cloneNode(true); tbLabels.setAttribute('id','selectTb'); let inputDom = tbLabels.querySelector('span:first-child > input'); inputDom.value='service:taobao'; tbLabels.querySelector('.next-checkbox-label').innerText='淘宝'; let insertDom = selectsDom.querySelector('label:nth-of-type(2)'); insertDom.before(tbLabels); tbLabels.addEventListener('click',selectTaobao); tbLabels.querySelector('.next-checkbox-label').addEventListener('click',function(e){ e.stopPropagation(); }) } }) } }else{ if(dom.className == 'next-checkbox-wrapper checked '){ showTbPage(); } } }) function selectTaobao(e){ let parentDom = e.target.parentNode; if(parentDom.className =='next-checkbox' && parentDom.parentNode.className == 'next-checkbox-wrapper '){ parentDom.parentNode.className='next-checkbox-wrapper checked '; showTbPage(); return; }else{ parentDom.parentNode.className='next-checkbox-wrapper '; let items = document.querySelectorAll('.Content--contentInner--QVTcU0M > div > a'); items.forEach(function(item){ item.parentNode.style='display:block'; }); } } function showTbPage(){ let items = document.querySelectorAll('.Content--contentInner--QVTcU0M > div > a'); items.forEach(function(item){ if(!item.href.match(/^https:\/\/item\.taobao\.com/)){ item.parentNode.style='display:none'; } }); } } function blackmodeFunc(){ let excludeWeb=['v.qq.com','www.iqiyi.com','iqiyi.com','www.youku.com','youku.com','www.bilibili.com','bilibili.com']; if(excludeWeb.indexOf(location.host) != -1)return; let style=` html {filter: invert(90%) !important; text-shadow: 0 0 0 !important;} img, .img, video, [style*="background"][style*="url"], svg {filter: invert(1) !important;} ::-webkit-scrollbar {height: 12px !important;} ::-webkit-scrollbar-thumb {border-radius: 0;border-color: transparent;border-style: dashed;background-color: #e1e1e1 !important;background-clip: padding-box;transition: background-color .32s ease-in-out;} ::-webkit-scrollbar-corner {background: #191919 !important;} ::-webkit-scrollbar-track {background-color: #191919 !important;} ::-webkit-scrollbar-thumb:hover {background: #e1e1e1 !important;}` let timer = setInterval(function(){ if(document.querySelector('head')){ clearInterval(timer); let domHead = document.querySelector('head'); let domStyle = document.createElement('style'); domStyle.type = 'text/css'; domStyle.rel = 'stylesheet'; domStyle.id = 'blackmode'; domStyle.innerText = style; domHead.appendChild(domStyle); } },10); } } })();