Greasy Fork is available in English.

学堂在线自动播放-高校版

学堂在线自动播放下一集(仅在华工验证通过,其他学校没试)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         学堂在线自动播放-高校版
// @namespace    http://tampermonkey.net/
// @version      0.2.0
// @description  学堂在线自动播放下一集(仅在华工验证通过,其他学校没试)
// @author       Colin1501
// @match        https://*.xuetangx.com/lms
// @grant        none
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';
    var playNext = function(){
        var localElement = $('.video-active');
        var sameVideoNameArray = localElement.parent().find('.section-video-name');
        // 判断同级小节下是否还有其他视频
        if(localElement.index() == (sameVideoNameArray.length-1)){ // 是本小节的最后一个视频
            var localChaperElement = $('.video-active').parents('.tree-section-item');
            var sameChaperNameArray = localChaperElement.parent().find('.tree-section-item');
            // 判断同级章下是否还有其他小节
            if(localChaperElement.index() == (sameChaperNameArray.length-2)){ // 是本章的最后一个小节
                var localSection = $('.video-active').parents('.tree-section-item').parent().find('.tree-section-item').parents('.tree-chapter-item');
                var sectionArray = $('.tree-chapter-item');
                // 判断是否是最后一章
                if(localSection.index() == sectionArray.length-1){ // 已经是最后一章了
                    alert("恭喜你刷完了视频");
                }else{ // 不是最后一章
                    $(sectionArray[localSection.index()+1]).find('.chapter-name').click();
                    let tmp1 = sectionArray[localSection.index()+1];
                    console.log(tmp1);
                    setTimeout(function(){
                        let tmp2 = $(tmp1).find('.tree-section-item')[0];
                        $(tmp2).find('.section-name')[0].click();
                        console.log(tmp2);
                        setTimeout(function(){
                            let tmp3 = $(tmp2).find('.section-video-name')[0];
                            console.log(tmp3);
                            setTimeout(function(){
                                let tmp4 = $(tmp3).find('span').not('.video-see')[0];
                                console.log(tmp4);
                                tmp4.click();
                            },5000);
                        },500);
                    },500);
                }
            }else{ // 不是本章的最后一个小节
                $(sameChaperNameArray[localChaperElement.index()+1]).find('.section-name').click();
                let tmp1 = sameChaperNameArray[localChaperElement.index()+1];
                console.log(tmp1);
                setTimeout(function(){
                    let tmp2 = $(tmp1).find('.section-video-name')[0];
                    console.log(tmp2);
                    setTimeout(function(){
                        let tmp3 = $(tmp2).find('span').not('.video-see')[0];
                        console.log(tmp3);
                        tmp3.click();
                    },5000);
                },500);
            }
        }else{ // 不是本小节的最后一个视频
            setTimeout(function(){
                $(sameVideoNameArray[localElement.index()+1]).find('span').not('.video-see')[0].click();
            },5000);
        }
    }
    $(document).ready(function(){
        var timer = setInterval(function(){
            var reg = /^[a-zA-z]+:\/\/[\w]*.xuetangx.com\/lms\#\/video\/[0-9]*\/[0-9]*/;
            if($('video').length && $('video')[0].readyState == 4){
                if($('video')[0].readyState == 4){
                    if($('video')[0].paused){
                        console.log("paused");
                        $('video')[0].play();
                    }
                    $('video')[0].onended = function(){
                        playNext();
                    }
                    $('video')[0].playbackRate = 1.0;
                    $('video')[0].currentTime = 0;
                    $('video')[0].volume = 0;
                    clearInterval(timer);
                }
            }
        },500);
    });
    // Your code here...
})();