超星学习通人脸扫码绕过

超星学习通人脸扫码绕过,进入课程只需扫一次码采集一次人脸即可。

// ==UserScript==
// @name         超星学习通人脸扫码绕过
// @namespace    https://scriptcat.org/zh-CN/script-show-page/1829
// @version      1.1
// @description  超星学习通人脸扫码绕过,进入课程只需扫一次码采集一次人脸即可。
// @author       DANIEL
// @match        *://*.chaoxing.com/*
// @icon         http://pan-yz.chaoxing.com/favicon.ico
// @grant        none
// @contributionURL   https://scriptcat.org/api/v2/resource/image/rtYcOQbW7tLKaAJ6
// ==/UserScript==
 
(function() {
    'use strict';
 
    function checkAndRemoveDivs() {
        const selectors = [
            'div.popDiv1.wid640.popClass.faceRecognition_0',
            'div.maskDiv1',
            'div.maskDiv1.__web-inspector-hide-shortcut__'
        ];
 
        selectors.forEach(selector => {
            document.querySelectorAll(selector).forEach(div => {
                if(div.parentNode) {
                    div.parentNode.removeChild(div);
                }
            });
        });
    }
 
 
    function autoplayVideos() {
        document.querySelectorAll('div video').forEach(video => {
            if (video.readyState >= 3) {
                video.play().catch(e => {
                    console.error('Auto-play failed:', e);
                });
            }
        });
    }
 
    
    const observer = new MutationObserver(mutations => {
        let shouldCheckDivs = false;
        let shouldAutoplayVideos = false;
 
        mutations.forEach(mutation => {
            if (mutation.addedNodes.length) {
                shouldCheckDivs = true;
                shouldAutoplayVideos = true;
            }
        });
 
        if (shouldCheckDivs) {
            checkAndRemoveDivs();
        }
 
        if (shouldAutoplayVideos) {
            autoplayVideos();
        }
    });
 
    
    observer.observe(document.body, { childList: true, subtree: true });
 
    
    checkAndRemoveDivs();
    autoplayVideos();
})();