// ==UserScript== // @name 杀佛观音·腾讯视频频道页面剧集记录匹配 // @namespace 杀佛观音 // @version 0.1.0 // @description 通过频道页面快速判断剧集是否更新,更新可快速观看,省去通过书签或眼力寻找,节省时间,效率至上。搭配“杀佛观音·全网VIP视频解析·极简版”使用体验更佳。 // @author 杀佛观音 // @copyright 2021 杀佛观音 // @license End-User License Agreement // @contributionURL BTC:MUgzRE1rV0FkSk1VcGtzdGRZWm1IcGlWN1JBRmpqQzRXSA==(base64) // @contributionAmount >=1CNY // @match https://v.qq.com/channel/*?listpage* // @grant none // @downloadURL none // ==/UserScript== (() => { 'use strict'; //使用前或更新后熟读,捐赠后视为正版,未捐赠视为盗版,好评后视为正版^_^ //https://greasyfork.org/zh-CN/scripts/429154-%E6%9D%80%E4%BD%9B%E8%A7%82%E9%9F%B3-%E8%85%BE%E8%AE%AF%E8%A7%86%E9%A2%91%E9%A2%91%E9%81%93%E9%A1%B5%E9%9D%A2%E5%89%A7%E9%9B%86%E8%AE%B0%E5%BD%95%E5%8C%B9%E9%85%8D //搭配“杀佛观音·全网VIP视频解析·极简版”使用体验更佳。 //https://greasyfork.org/zh-CN/users/792030-avalokiteshvara //最终用户许可协议 End-User License Agreement // * Copyright (c) 2021 杀佛观音. All Rights Reserved. // * Proprietary and Confidential. // * Written by 杀佛观音 [SWFtSmVob3ZhaDxhdD50dXRhbm90YS5jb20=(base64)], July 2021. // * It is never ok to copy and paste code from an open // source project directly into your proprietary code. // Don't do it. // * Re-distribution or adaptation in whole or in part of // this script code by any means or in whatever form is // strictly prohibited. // * 该项目介绍、说明书、脚本代码、思路及其他相关 // 内容版权归作者所有,未经作者本人书面授权,禁 // 止任何单位或个人以任何形式、任何手段或通过任 // 何方式(净室工程、手工、图片、电子、机械、磁 // 性、化学、光学、声学或其它方式)抄袭、摘编、 // 编辑、修改、结集、出版、再版、转录、转载、爬 // 虫爬取、重制、仿制、复制、复写、复印、影印、 // 拷贝、刻录、建立镜像、粘贴、张贴、派发、录音、 // 用来创建派生作品、与其它任何资料进行合并、翻 // 译成任何电脑语言或以其他任何方式用于商业或公 // 共目的。 // * 该项目仅仅准许您善意的使用,其他任何行为都是 // 禁止的。 //加载剧集页数,每页30个 let page = 20; //每次看完剧集都需要手动更新此列表,格式为“剧集名|集数|备注”,剧集名需与页面完全相同(包括剧集名中间可能存在的空格),且剧集名前后不带空格。 //及时备份此列表至记事本,脚本自动更新后列表会丢失。 //您可在设置内关闭本脚本检查更新,以防止列表被移除,并及时手动访问本脚本安装页面手动获取最新更新。 let record = ` 万界仙踪|184|第六季 斗罗大陆|164| 入间同学入魔了|32|第二季 斗破苍穹 第4季|17| 完美世界|14| `; (() => { return new Promise(resolve => { let intervalID = setInterval(() => { if(document.head || document.documentElement){ clearInterval(intervalID); resolve(); } }, 50); }); })().then(() => { return new Promise(resolve => { let intervalID = setInterval(() => { document.documentElement.scrollTop = document.documentElement.scrollHeight; if(document.getElementsByTagName('img').length >= 30*page+100){ clearInterval(intervalID); document.documentElement.scrollTop = 0; resolve(); } }, 50); }); }).then(() => { return new Promise(resolve => { let record_arr = record.split(/[(\r\n)\r\n]+/); let episode_list = []; record_arr.forEach(i => { if(i.split('|').length === 3){ let str = i.split('|')[0]; let num = i.split('|')[1]; Array.from(document.getElementsByTagName('img'))?.forEach(img => { if(img?.alt === str){ if(img?.nextElementSibling?.innerHTML?.match(/\d{1,}/)[0] !== void 0 && img?.nextElementSibling?.innerHTML?.match(/\d{1,}/)[0] !== num){ episode_list.push({name:str,old_num:num,new_num:img?.nextElementSibling?.innerHTML?.match(/\d{1,}/)[0],object:img.parentElement}); } } }); } }); if(episode_list.length !== 0){ resolve(episode_list); } }); }).then(episode_list => { (css => { let style = document.createElement('style'); style.textContent = css; let dom = document.head || document.documentElement; dom.appendChild(style); })(`.levitated_div{z-index:99999999999999;position:fixed;width:30%;height:40%;left:35%;top:30%;;background-color:#FFFFFF;box-shadow:rgba(15, 66, 76, 0.25) 0px 0px 8px 3px;border-radius:15px;overflow:hidden;background-size:100% 100%;} .levitated_div_son{height:100%;overflow:auto;scrollbar-width:thin;} .levitated_div_son::-webkit-scrollbar{width:7px;height:7px;} .levitated_div_son::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.6);-webkit-box-shadow:none;} .levitated_div_son::-webkit-scrollbar-track{background-color:rgba(0,0,0,.2);-webkit-box-shadow:none;} .levitated_div_son::-o-scrollbar{width:7px;height:7px;} .levitated_div_son::-o-scrollbar-thumb{background-color:rgba(255,255,255,.6);-webkit-box-shadow:none;} .levitated_div_son::-o-scrollbar-track{background-color:rgba(0,0,0,.2);-webkit-box-shadow:none;} .levitated_button{position:fixed;color:#000000;border:none;font-size:15px;} .levitated_button_close{background-color:#FFFFFF;border-top-left-radius:15px;border-bottom-left-radius:8px;border-bottom-right-radius:15px;border-top-right-radius:8px;float:left;box-shadow:0px 0px 8px 3px;} .levitated_div_title{color:#000000;font-size:22px;text-align:center;} a:hover {color:#2828FF} .levitated_div_elem{color:#000000;font-size:22px;text-align:center;cursor:pointer;} `); let levitated_div = document.createElement('div'); levitated_div.className = 'levitated_div'; levitated_div.onmouseover = levitated_div.onfocus = () => { levitated_div.style['box-shadow'] = '0px 0px 8px 3px'; }; levitated_div.onmouseleave = levitated_div.onblur = () => { levitated_div.style['box-shadow'] = 'rgba(15, 66, 76, 0.25) 0px 0px 8px 3px'; }; let levitated_div_son = document.createElement('div'); levitated_div_son.className = 'levitated_div_son'; levitated_div.appendChild(levitated_div_son); document.documentElement.appendChild(levitated_div); let div_ = document.createElement('div'); div_.className = 'levitated_button'; let levitated_button_close = document.createElement('button'); levitated_button_close.className = 'levitated_button_close'; levitated_button_close.innerHTML = '  X  '; levitated_button_close.onclick = () => { document.getElementsByClassName('levitated_div')[0].style.display='none'; }; levitated_button_close.onmouseover = levitated_button_close.onfocus = () => { levitated_button_close.style['box-shadow'] = 'rgba(15, 66, 76, 0.25) 0px 0px 8px 3px'; }; levitated_button_close.onmouseleave = levitated_button_close.onblur = () => { levitated_button_close.style['box-shadow'] = '0px 0px 8px 3px'; }; div_.appendChild(levitated_button_close); levitated_div_son.appendChild(div_); let levitated_appendChild = (div,tag,className,innerHTML,isTitle,episodeElem) =>{ let elem = document.createElement(tag); if(className){elem.className = className;} if(innerHTML){elem.innerHTML = innerHTML;} if(!isTitle){ elem.onmouseover = elem.onfocus = () => { elem.style['background-color'] = '#DCDCDC'; }; elem.onmouseleave = elem.onblur = () => { elem.style['background-color'] = '#FFFFFF'; }; elem.onclick = () => { episodeElem.click(); }; } div.appendChild(elem); } levitated_appendChild(levitated_div_son,'br'); levitated_appendChild(levitated_div_son,'div','levitated_div_title','杀佛观音·腾讯视频频道页面剧集记录匹配·更新列表',!0); levitated_appendChild(levitated_div_son,'br'); episode_list.forEach(episode => { levitated_appendChild(levitated_div_son,'hr'); levitated_appendChild(levitated_div_son,'div','levitated_div_elem',episode.name+' '+episode.old_num+'→'+episode.new_num,!1,episode.object); }); }); })();