【kcjs_1_1】青书学堂 河北科大 自刷跳转解析

【最新版】青书学堂自动后台静音播放脚本,增加自动跳过课程简介、教学大纲,点击课程进入学习页

// ==UserScript==
// @name         【kcjs_1_1】青书学堂 河北科大 自刷跳转解析
// @namespace    http://tampermonkey.net/
// @version      0.7
// @description  【最新版】青书学堂自动后台静音播放脚本,增加自动跳过课程简介、教学大纲,点击课程进入学习页
// @author       zhdhu
// @match        *://*.qingshuxuetang.com/hbkd/*
// @grant        none
// @license      GPL
// ==/UserScript==

(function() {
    'use strict';
    var i
    var href = location.href
    if (href.indexOf('nodeId') > -1) {
        var params = new UrlSearch()
        var no = params.no
        const courseArr = params.nodeId.split('jbxx')
        console.log('当前地址:',courseArr);
        // 跳过基本信息页(课程介绍、教学大纲)直接进入课程讲授
        var kcjs = ''
        if (courseArr.length == 2) {
            //视频第一页
            kcjs = `kcjs_1_1`
            //拼接地址
            Videokcjs(params.teachPlanId,params.periodId,params.courseId,kcjs,no)
        }
        // 视频课程地址是否带参数
        if (courseArr == "") {
            //视频第一页
            kcjs = `kcjs_1`
            //拼接地址
            Videokcjs(params.teachPlanId,params.periodId,params.courseId,kcjs,no)
        }
        setTimeout(function() {
            var video // = document.getElementsByTagName("video")[0]
                      = document.getElementById("vjs_video_3_html5_api")
            console.log('找到视频组件,开始静音并自动播放...', video)
            var params = new UrlSearch()
            // 课程ID
            var courseId = params.courseId
            const courseArr = params.nodeId.split('_')
            // 播放的视频的key
            var nextKey = ''
            // 非播放页面转到播放页
            if(video.src === ''){
                console.log('找不到视频组件', video)
                // no = undefind
                no ? no = Number(no) + 1 : no = Number(2)
                nextKey = `kcjs_${Number(courseArr[1]) + 1}_1`
                //拼接地址
                Videokcjs(params.teachPlanId,params.periodId,params.courseId,nextKey,no)
            }
            console.log("失败次数",no)

            //设置播放进度为0
            video.currentTime = 0
            // 设置静音并播放
            video.muted = true
            // ****************************************************************************************** //
            // 设置倍速播放 支持以下速率: [2, 1.5, 1.2, 0.5] ;默认开启 如有问题请手动注释下面这行代码;或者邮箱反馈我  //
            // ****************************************************************************************** //
            video.playbackRate = 2
            video.play()
            console.log('长度:',courseArr);
            //根据标题名称判断是否为无效课程
            var videoNameTag = document.getElementsByClassName("lesson-list")
            console.log(videoNameTag[0].innerText)
            const tagN = videoNameTag[0].innerText.substring(0,3).split('-')
            if (videoNameTag[0].innerText !== '') {
            }
            const nextCoureArr = courseArr
            const nn= 0
            console.log('赋值数组:',nextCoureArr,courseArr);
            if (courseArr[1] !== 1 && courseArr[2] !== 1 && tagN[0] == 1 && tagN[1] == 1) {
                //不正常播放
                if (courseArr.length == 2) {
                    nextKey = `kcjs_${Number(courseArr[1]) + 1}`
                    console.log('下一页:',nextKey);
                } else if (courseArr.length == 3) {
                    nextKey = `kcjs_${Number(courseArr[1])+1}_${Number(1)}`
                    console.log('下一页:',nextKey);
                }
                // console.log("不正常播放",no,params.no)
                no ? no = Number(params.no != 'undefined' ? params.no: 0) + 1 : no = 1
                console.log("+++++", no)
            }else {
                //正常播放
                // console.log("正常播放")
                if (courseArr.length == 2) {
                    nextKey = `kcjs_${Number(courseArr[1]) + 1}`
                    console.log('下一页:',nextKey);
                } else if (courseArr.length == 3) {
                    nextKey = `kcjs_${courseArr[1]}_${Number(courseArr[2]) + 1}`
                    console.log('下一页:',nextKey);
                }
                   no ? no = 'undefined' : ''
                // console.log("+++++", no)
            }
            if(no >= 2) {
                window.alert('刷课完成')
                location.replace('https://degree.qingshuxuetang.com/hbkd/Student/Home');
            }
            const nextUrl = `https://${window.location.host}${window.location.pathname}?teachPlanId=${params.teachPlanId}&periodId=${params.periodId}&courseId=${courseId}&nodeId=${nextKey}&no=${no}`
            console.log(params, 'currentId:', params.nodeId, 'nextKey:', nextKey, 'nextUrl:', nextUrl)
            // 视频播放结束,自动下一条视频
            video.addEventListener("ended",function(){
                location.replace(nextUrl);
            })
        }, 5000)

        // 打印播放进度
        getvideoprogress();
    }
})();
function Videokcjs(teachPlanId,periodId,courseId,key,no ) {
    const Url = `https://${window.location.host}${window.location.pathname}?teachPlanId=${teachPlanId}&periodId=${periodId}&courseId=${courseId}&nodeId=${key}`+ (no !== '' ? '&no= ' + no : no = '&no= 1')
    location.replace(Url);
}
function UrlSearch() {
    var name,value;
    var str=location.href; //取得整个地址栏
    console.log('当前整个地址:',str);
    var num=str.indexOf("?")
    str=str.substr(num+1); //取得所有参数   stringvar.substr(start [, length ]
    var arr=str.split("&"); //各个参数放到数组里
    for(var i=0;i < arr.length;i++){
        num=arr[i].indexOf("=");
        if(num>0){
            name=arr[i].substring(0,num);
            value=arr[i].substr(num+1);
            this[name]=value;
        }
    }
}

// 检测当前播放的进度
function getvideoprogress() {
    setInterval(function () {
        var vid = document.getElementsByTagName("video")[0]
        var currentTime=vid.currentTime.toFixed(1);
        // console.log('当前进度:', currentTime);
    }, 10000);
}