屏蔽云课堂挂机检测脚本
当前为
// ==UserScript== // @name yuncourse-1989 // @namespace http://tampermonkey.net/ // @version 0.3 // @description 屏蔽云课堂挂机检测脚本 // @author lingmao // @match *://*.yunxuetang.cn/* // @icon https://yunketang.cn/static/images/[email protected] // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Your code here... var time=getTimes(); var str = "display: none;"; var str2 = "dialog-fade-leave"; var play_btn = 0;var continue_to_learn = 0;var elem=0; let obj = {'autoplay':true,'muted':true}; console.log('It\'s runing Now'); var tm=setInterval(function(){ var i=0;var j=0;var RootNode=0; play_btn = document.querySelector('video'); elem=document.getElementsByClassName("yxt-dialog__wrapper"); // 判断是否有“继续学习”按钮,点击后判断视频是否在播放状态,使视频播放 continue_to_learn = document.getElementsByClassName("yxtf-button mr8 yxtf-button--primary yxtf-button--larger2"); // 点击“继续学习”按钮 if(continue_to_learn[0]!=undefined){ continue_to_learn[0].click(); } // 使视频播放(添加属性,防止chrome报错) play_btn.setAttribute('autoplay','true'); play_btn.setAttribute('muted','true'); if(play_btn.paused){ play_btn.play(); } // 循环找到挂机检测弹窗节点 for (i = 0; i < elem.length; i++) { if(elem[i].attributes[2]!=undefined){ if(elem[i].attributes[2].nodeValue.indexOf(str)==-1){ // 发现bug,添加一个判断 if(elem[i].attributes[1].nodeValue.indexOf(str2)==-1){ RootNode=elem[i]; console.log(RootNode); } } } } if(RootNode===0){ console.log("no alert. dialog-center display none."); return; } var btn=RootNode.getElementsByClassName("dialog-footer")[0]; var center=document.getElementsByClassName("dialog-center"); console.log("触发挂机弹窗"); if(!btn){ console.log("dialog-footer classname elements not found."); return; } var res=btn.innerText; console.log(res); if(res!="继续学习"){ btn=document.getElementsByClassName("dialog-footer")[2]; } console.log("点击继续学习"); // 点击继续学习按钮 btn.getElementsByClassName("yxt-button yxt-button--primary")[0].click(); },time); })(); function getTimes(){ var times=Math.random()*8 + 1;//1-9 times=5*1000*1;//+times*10 return times } function sleep(time){ return new Promise((resolve) => setTimeout(resolve, time)); }