yuncourse-1989

屏蔽云课堂挂机检测脚本

目前為 2023-01-11 提交的版本,檢視 最新版本

// ==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));
}