智慧树

智慧树视频快速刷完,解放双手。

目前为 2024-06-13 提交的版本。查看 最新版本

// ==UserScript==
// @name         智慧树
// @namespace    hhttps://github.com/zhaozhenkun
// @version      1.0.0
// @description  智慧树视频快速刷完,解放双手。
// @author       zhaozk
// @match        https://armystudy.zhihuishu.com/armystudy/militaryStudy?*
// @icon         http://image.zhihuishu.com/zhs_yufa_150820/able-commons/demo/201806/0c81bd49be6b4184bc4aaf1472a2fabd.png
// @require      https://unpkg.com/[email protected]/dist/web/pxmu.min.js
// @grant        none,
// @license MIT
// ==/UserScript==

(function() {
    'use strict';
    //延时等待页面加载完成
    setTimeout(function (){
        // 获取视频播放元素
        const videoLists = document.querySelectorAll('.mi-courseContent ul li')
        if (videoLists.length) {
            getVideoMsg(videoLists)
        }
    },2000)
    // Your code here...
})();

//遍历视频列表(获取视频id/视频时间/lessonid/measureId)
function getVideoMsg (list) {
    for (const index in list ) {
        const item = list[index]
        // 获取该视频是否已经播放完成
        let completed = $(item).find('.mi_completed').html()
        if (completed == '已完成') {
            return;
        }
        //获取视频id
        const videoId = $(item).attr('videoId')
        //获取lessonid
        const lessonId = $(item).attr('lessonId')
        //获取measureId
        const measureId = $(item).attr('measureId')
        // 视频观看时间
        let watchTime = 0
        // 视频结束观看时间
        let exitwatchTime = 0
        //获取视频时间
        let videoTotalTime = 0

        if (videoId && lessonId) {
            //获取视频时间
            videoTotalTime = timeToSeconds($(item).find('.mi_timeSpan').html())
            //上报次数
            const count = Math.ceil(videoTotalTime/180)
            //隔180秒上报视频进度
            for (let i = 0;i < count;i++) {
                setTimeout(function (){
                    if(parseInt(videoTotalTime) < 180) {
                        watchTime = parseInt(videoTotalTime) + 1
                        exitwatchTime = exitwatchTime + parseInt(videoTotalTime)
                        videoTotalTime = 0
                    } else {
                        exitwatchTime = exitwatchTime + 180
                    }
                    //上报
                    videoPlay({videoId,lessonId,measureId,watchTime,exitwatchTime,videoTotalTime})
                    watchTime = 180
                    videoTotalTime = videoTotalTime - 180
                    if(parseInt(videoTotalTime) <= 0){
                        exitwatchTime = 0
                    }
                },3000)

            }




        }

    }
}
// 时间转换秒
function timeToSeconds(strTime) {
    var Temp = strTime.split(':');
    var seconds = 60 * Number(Temp[0]) + Number(Temp[1]);
    return seconds;
}
// url参数转换为对象
function UrlSearch() {
    const search = location.search.replace('?', '')
    const params = {}
    const arr = search.split('&')
    arr.forEach(item => {
        const pArr = item.split('=')
        params[pArr[0]] = pArr[1]
    })

    return params
}
//请求接口完成视频播放
function videoPlay (video) {
    const searchUrl = UrlSearch()
    $.post('https://armystudy.zhihuishu.com/armystudy/stuRecord', {
        courseId:searchUrl.courseId, //课程id
        userId: searchUrl.userId, //用户id
        videoId:video.videoId, //视频id
        exitwatchTime:video.exitwatchTime, //播放结束时间
        lessonId:video.lessonId,
        measureId:video.measureId,
        videoNum:$("#lessonNum").html(),
        watchTime:video.watchTime //观看视频时长(180s一个循环)
    }, function (res) {
        if (video.videoTotalTime >= 0 ) {
            pxmu.success({
                msg: video.videoId+'完成!', bg: '#4CC443',
            })
        }
    })

}