ulearning

课程思政网络培训的视频每隔几分钟会暂停播放,这个脚本可以帮你自动(每分钟检测一次)继续播放,还可以跳过非视频的页面(这个功能没有仔细测试)。只支持在同一个课程内自动播放,播放结束后跳到下一章节,所以请选择一个学分数很大的课程来挂课。

当前为 2021-05-15 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name ulearning
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description 课程思政网络培训的视频每隔几分钟会暂停播放,这个脚本可以帮你自动(每分钟检测一次)继续播放,还可以跳过非视频的页面(这个功能没有仔细测试)。只支持在同一个课程内自动播放,播放结束后跳到下一章节,所以请选择一个学分数很大的课程来挂课。
  6. // @author laohoo
  7. // @match https://ua.ulearning.cn/learnCourse/learnCourse.html*
  8. // @icon https://www.google.com/s2/favicons?domain=ulearning.cn
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. console.log('go to do.');
  16. let tiemOut = 1000*60; // 检测间隔时间,默认为一分钟(1000*60)一次
  17. let lists = [];
  18. let index = 0;
  19.  
  20. function getPlayList(){
  21. lists = document.querySelectorAll('.section-item div.page-list .page-item');
  22. console.log(lists);
  23. }
  24.  
  25. setInterval(function(){
  26. try{
  27. let btn_play = document.querySelector('.mejs__overlay-play');
  28. //let currentTime = document.querySelector('.mejs__currenttime');
  29. //let duration = document.querySelector('.mejs__duration');
  30. let playStatus = document.querySelector('div.video-progress div.text span');
  31.  
  32. //let videoWrapper = document.querySelector('.video-wrapper');
  33. //console.log('videoWrapper: ',videoWrapper);
  34. if(lists.length<2){
  35. getPlayList();
  36. }
  37.  
  38. if(!btn_play){
  39. let nextBtn = document.querySelector('.next-page-btn');
  40. if(nextBtn){
  41. console.log('next page.');
  42. nextBtn.click();
  43. }else if(lists.length){
  44. console.log('play lists.');
  45. for(index in lists){
  46. let iconfont= lists[index].querySelector('.iconfont');
  47. if(!iconfont.classList.contains('finish')){
  48. console.log('not finish',lists[index]);
  49. lists[index].querySelector('.page-name.cursor').click();
  50. break;
  51. }
  52. }
  53. }
  54. }
  55.  
  56. console.log('btn_play: ',btn_play);
  57. //console.log('currentTime: ',currentTime.innerText);
  58. //console.log('playStatus: ',playStatus.innerText);
  59.  
  60. if(btn_play){
  61. //btn_play.setAttribute('aria-pressed','true');
  62. if(document.querySelector('.mejs__overlay-button').getAttribute('aria-pressed')==='false'){
  63. if(playStatus.innerText !='已看完'){
  64. btn_play.click();
  65. console.log(Date(), ' play continue... ');
  66. }else{
  67. if(lists.length){
  68. console.log('play lists.');
  69. for(index in lists){
  70.  
  71. let iconfont= lists[index].querySelector('.iconfont');
  72.  
  73. if(!iconfont.classList.contains('finish')){
  74. console.log('not finish',lists[index]);
  75. lists[index].querySelector('.page-name.cursor').click();
  76. break;
  77. }
  78. }
  79. }
  80. }
  81. }
  82. }
  83. }
  84. catch(e){
  85. if (window.console){
  86. window.console.log("Error in this userscript");
  87. }
  88. }
  89. }, tiemOut);
  90.  
  91.  
  92.  
  93. // Your code here...
  94. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址