// ==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/pxmu@1.1.0/dist/web/pxmu.min.js // @grant none // @license MIT // @downloadURL none // ==/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', }) } }) }