您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
云学堂视频自动播放-持续测试中,有问题可以反馈。如果有哪个课看不了,可以在评论留下课程网址和课程名字,我闲的时候会更新
当前为
// ==UserScript== // @name 驼人云学堂自动刷视频-新版-V2.0 // @namespace czy // @version 2.2.1 // @description 云学堂视频自动播放-持续测试中,有问题可以反馈。如果有哪个课看不了,可以在评论留下课程网址和课程名字,我闲的时候会更新 // @author czy // @icon https://picobd.yxt.com/orgs/yxt_malladmin/mvcpic/image/201811/71672740d9524c53ac3d60b6a4123bca.png // @match http://*.yunxuetang.cn/plan/*.html // @match http://*.yunxuetang.cn/kng/plan/document/* // @match http://*.yunxuetang.cn/kng/view/document/* // @match http://*.yunxuetang.cn/kng/plan/video/* // @match http://*.yunxuetang.cn/kng/view/video/* // @match http://*.yunxuetang.cn/kng/view/package/* // @match http://*.yunxuetang.cn/kng/plan/package/* // @match http://*.yunxuetang.cn/kng/o2ostudy/video/* // @match http://*.yunxuetang.cn/mit/myhomeworkexprience* // @match http://*.yunxuetang.cn/kng/course/package/video/* // @match http://*.yunxuetang.cn/kng/course/package/document/* // @match http://*.yunxuetang.cn/sty/index.htm/* // @match http://*.yunxuetang.cn/kng/o2ostudy/document/* // @match https://*.yunxuetang.cn/plan/*.html // @match https://*.yunxuetang.cn/kng/plan/document/* // @match https://*.yunxuetang.cn/kng/view/document/* // @match https://*.yunxuetang.cn/kng/plan/video/* // @match https://*.yunxuetang.cn/kng/view/video/* // @match https://*.yunxuetang.cn/kng/view/package/* // @match https://*.yunxuetang.cn/kng/plan/package/* // @match https://*.yunxuetang.cn/kng/o2ostudy/video/* // @match https://*.yunxuetang.cn/mit/myhomeworkexprience* // @match https://*.yunxuetang.cn/kng/course/package/video/* // @match https://*.yunxuetang.cn/kng/course/package/document/* // @match https://*.yunxuetang.cn/sty/index.htm/* // @match https://*.yunxuetang.cn/kng/o2ostudy/document/* // @match https://*.yunxuetang.cn/kng/* // @match https://*.yunxuetang.cn/mit/* // @match https://*.yunxuetang.cn/sty/* // @match https://*.yunxuetang.cn/plan/* // @match https://*.yunxuetang.cn // @grant GM_xmlhttpRequest // @grant unsafeWindow // @license MIT // @connect none // @require http://code.jquery.com/jquery-1.11.0.min.js // ==/UserScript== (function () { function Toast(msg, duration) { duration = isNaN(duration) ? 3000 : duration; var m = document.createElement('div'); m.innerHTML = msg; m.style.cssText = "font-family:siyuan;max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 2%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;"; document.body.appendChild(m); setTimeout(function() { var d = 0.5; m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in'; m.style.opacity = '0'; setTimeout(function() { document.body.removeChild(m) }, d * 1000); }, duration); } //新版本 let currentTime = ""; //当前播放到的时间 let playTopTxt = "";//还需 ****可完成本课程学习,加油 if(document.getElementsByClassName('jw-text-elapsed')[0]){ currentTime = document.getElementsByClassName('jw-text-elapsed')[0].innerText; } if(document.getElementsByClassName('play-area-title')[0] && document.getElementsByClassName('play-area-title')[0].innerText){ playTopTxt = document.getElementsByClassName('play-area-title')[0].innerText; } //新版本 Element.prototype.trigger = function(eventName){ this.dispatchEvent(new Event(eventName)); } setInterval(()=>{//定时器,5秒处理一次 //触发看视频中的弹框 Element.prototype.trigger = function(eventName){ this.dispatchEvent(new Event(eventName)); } //新版本新版本新版本新版本新版本新版本新版本新版本新版本 let myDocumentSpanArrayNew = ""; if(document.getElementsByClassName('play-right-li')[0]){ myDocumentSpanArrayNew = document.getElementsByClassName('play-right-li')[0].getElementsByClassName('kng-chapter-title');//新的章节列表 } //开始学习按钮 if(document.getElementsByClassName('kngpc-playbutton ')[0]){ document.getElementsByClassName('kngpc-playbutton ')[0].trigger('click') } //继续学习按钮 for(let i = 0;i<document.getElementsByClassName('yxtf-button').length;i++){ if(document.getElementsByClassName('yxtf-button')[i].innerText.indexOf('继续学习')>-1){ document.getElementsByClassName('yxtf-button')[i].trigger('click'); } } //下一个任务 if(document.getElementsByClassName('play-area-title')[0] && document.getElementsByClassName('play-area-title')[0].innerText.indexOf('可完成本课程学习')>=0){//当前没看完 }else{//看完了 if(document.getElementsByClassName('yxtf-button')[1]){ document.getElementsByClassName('yxtf-button')[1].trigger('click') } } //防治挂机的继续学习校验 for(let i = 0;i<document.getElementsByClassName('yxt-button').length;i++){ if(document.getElementsByClassName('yxt-button')[i].innerText.indexOf('继续学习')>-1 && document.getElementsByClassName('yxt-button')[i].innerText != ('继续学习 (0s)')){ document.getElementsByClassName('yxt-button')[i].trigger('click'); } } if(document.getElementsByClassName('play-area-title')[0] && document.getElementsByClassName('play-area-title')[0].innerText){ if(playTopTxt!=""){ if(playTopTxt != document.getElementsByClassName('play-area-title')[0].innerText){//不相同说明正在正常看 playTopTxt = document.getElementsByClassName('play-area-title')[0].innerText; }else{//相同说明放挂机出现了,刷新一下 location.reload(); } } } //暂停处理 if(document.getElementsByClassName('jw-text-elapsed')[0]){ if(currentTime == document.getElementsByClassName('jw-text-elapsed')[0].innerText){//上一次的时间和当前时间一样,说明暂停了 for(let i =0;i<myDocumentSpanArrayNew.length;i++){ if(myDocumentSpanArrayNew[i].classList.contains('color-primary-6')){ currentTime = "" myDocumentSpanArrayNew[i].parentNode.parentNode.trigger('click'); } } } }else{ for(let i =0;i<myDocumentSpanArrayNew.length;i++){ if(myDocumentSpanArrayNew[i].classList.contains('color-primary-6')){ currentTime = "" myDocumentSpanArrayNew[i].parentNode.parentNode.trigger('click'); } } } //当前节播放完了吗 if(myDocumentSpanArrayNew!="" && myDocumentSpanArrayNew.length>0){//有章节列表 if(document.getElementsByClassName('play-area-title')[0].innerText.indexOf('可完成本课程学习')>=0){//当前没看完 for(let i =0;i<myDocumentSpanArrayNew.length;i++){ if(myDocumentSpanArrayNew[i].classList.contains('color-primary-6')){ if(i<myDocumentSpanArrayNew.length-2){ let toastTxt = '当前课程:'+myDocumentSpanArrayNew[i].innerText + "\n,下节课:"+myDocumentSpanArrayNew[i+1].innerText; //console.log('当前课程:'+myDocumentSpanArrayNew[i].innerText + ",下节课:"+myDocumentSpanArrayNew[i+1].innerText) Toast(toastTxt,3000) } } } }else{//看完了 for(let i =0;i<myDocumentSpanArrayNew.length;i++){ if(myDocumentSpanArrayNew[i].classList.contains('color-primary-6')){ console.log('当前课程:'+myDocumentSpanArrayNew[i].innerText) if(i<myDocumentSpanArrayNew.length-2){ currentTime = "" myDocumentSpanArrayNew[i+1].parentNode.parentNode.trigger('click'); } } } } }else{//无章节列表 //document.getElementsByClassName('yxtf-button')[1].trigger('click') } //重新给播放的时间赋值 if(document.getElementsByClassName('jw-text-elapsed')[0]){ currentTime = document.getElementsByClassName('jw-text-elapsed')[0].innerText; } },5000) })();