// ==UserScript== // @name 杀佛观音·腾讯视频频道页面剧集记录匹配 // @namespace 杀佛观音 // @version 0.1.1 // @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'; //最终用户许可协议 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. // * 该项目介绍、说明书、脚本代码、思路及其他相关 // 内容版权归作者所有,未经作者本人书面授权,禁 // 止任何单位或个人以任何形式、任何手段或通过任 // 何方式(净室工程、手工、图片、电子、机械、磁 // 性、化学、光学、声学或其它方式)抄袭、摘编、 // 编辑、修改、结集、出版、再版、转录、转载、爬 // 虫爬取、重制、仿制、复制、复写、复印、影印、 // 拷贝、刻录、建立镜像、粘贴、张贴、派发、录音、 // 用来创建派生作品、与其它任何资料进行合并、翻 // 译成任何电脑语言或以其他任何方式用于商业或公 // 共目的。 // * 该项目仅仅准许您善意的使用,其他任何行为都是 // 禁止的。 //搭配“杀佛观音·全网VIP视频解析·极简版”使用体验更佳。 //https://greasyfork.org/zh-CN/users/792030 //使用前或更新后进入下方脚本下载地址熟读信息,捐赠后视为正版,未捐赠视为盗版,好评后视为正版^_^ //https://greasyfork.org/zh-CN/scripts/429154 //一旦修改源码,脚本检查更新会被取消,请手动进入上方脚本下载地址更新脚本 //加载剧集页数,每页30个 let KillBuddha_page = 20; //每次看完剧集都需要手动更新此列表,格式为“剧集名|集数|备注”,剧集名需与页面完全相同(包括剧集名中间可能存在的空格),且剧集名前后不带空格。 //及时备份此列表至记事本,脚本更新后列表会丢失。 //您可在设置内关闭脚本检查更新,以防止列表被移除,请手动更新脚本。 let KillBuddha_record = ` 斗罗大陆|165| 入间同学入魔了|32|第二季 斗破苍穹 第4季|17| 完美世界|15| `; (() => { 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*KillBuddha_page+100){ clearInterval(intervalID); document.documentElement.scrollTop = 0; resolve(); } }, 50); }); }).then(() => { return new Promise(resolve => { let KillBuddha_record_arr = KillBuddha_record.split(/[(\r\n)\r\n]+/); let KillBuddha_episode_list = []; KillBuddha_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){ KillBuddha_episode_list.push({name:str,old_num:num,new_num:img?.nextElementSibling?.innerHTML?.match(/\d{1,}/)[0],object:img.parentElement}); } } }); } }); if(KillBuddha_episode_list.length !== 0){ resolve(KillBuddha_episode_list); } }); }).then(KillBuddha_episode_list => { (css => { let style = document.createElement('style'); style.textContent = css; let dom = document.head || document.documentElement; dom.appendChild(style); })(`.KillBuddha_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%;} .KillBuddha_div_son{height:100%;overflow:auto;scrollbar-width:thin;} .KillBuddha_div_son::-webkit-scrollbar{width:7px;height:7px;} .KillBuddha_div_son::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.6);-webkit-box-shadow:none;} .KillBuddha_div_son::-webkit-scrollbar-track{background-color:rgba(0,0,0,.2);-webkit-box-shadow:none;} .KillBuddha_div_son::-o-scrollbar{width:7px;height:7px;} .KillBuddha_div_son::-o-scrollbar-thumb{background-color:rgba(255,255,255,.6);-webkit-box-shadow:none;} .KillBuddha_div_son::-o-scrollbar-track{background-color:rgba(0,0,0,.2);-webkit-box-shadow:none;} .KillBuddha_button{position:fixed;color:#000000;border:none;font-size:15px;} .KillBuddha_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;} .KillBuddha_div_title{color:#000000;font-size:22px;text-align:center;} a:hover {color:#2828FF} .KillBuddha_div_elem{color:#000000;font-size:22px;text-align:center;cursor:pointer;} `); let KillBuddha_div = document.createElement('div'); KillBuddha_div.className = 'KillBuddha_div'; KillBuddha_div.onmouseover = KillBuddha_div.onfocus = () => { KillBuddha_div.style['box-shadow'] = '0px 0px 8px 3px'; }; KillBuddha_div.onmouseleave = KillBuddha_div.onblur = () => { KillBuddha_div.style['box-shadow'] = 'rgba(15, 66, 76, 0.25) 0px 0px 8px 3px'; }; let KillBuddha_div_son = document.createElement('div'); KillBuddha_div_son.className = 'KillBuddha_div_son'; KillBuddha_div.appendChild(KillBuddha_div_son); document.documentElement.appendChild(KillBuddha_div); let div_ = document.createElement('div'); div_.className = 'KillBuddha_button'; let KillBuddha_button_close = document.createElement('button'); KillBuddha_button_close.className = 'KillBuddha_button_close'; KillBuddha_button_close.innerHTML = '  X  '; KillBuddha_button_close.onclick = () => { document.getElementsByClassName('KillBuddha_div')[0].style.display='none'; }; KillBuddha_button_close.onmouseover = KillBuddha_button_close.onfocus = () => { KillBuddha_button_close.style['box-shadow'] = 'rgba(15, 66, 76, 0.25) 0px 0px 8px 3px'; }; KillBuddha_button_close.onmouseleave = KillBuddha_button_close.onblur = () => { KillBuddha_button_close.style['box-shadow'] = '0px 0px 8px 3px'; }; div_.appendChild(KillBuddha_button_close); KillBuddha_div_son.appendChild(div_); let KillBuddha_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); } KillBuddha_appendChild(KillBuddha_div_son,'br'); KillBuddha_appendChild(KillBuddha_div_son,'div','KillBuddha_div_title','杀佛观音·腾讯视频频道页面剧集记录匹配·更新列表',!0); KillBuddha_appendChild(KillBuddha_div_son,'br'); KillBuddha_episode_list.forEach(episode => { KillBuddha_appendChild(KillBuddha_div_son,'hr'); KillBuddha_appendChild(KillBuddha_div_son,'div','KillBuddha_div_elem',episode.name+' '+episode.old_num+'→'+episode.new_num,!1,episode.object); }); }); })();