西南科技大学视频学习

西南科技大学学习助手,2倍速看视频,尚课平台。

  1. // ==UserScript==
  2. // @name 西南科技大学视频学习
  3. // @namespace https://gf.qytechs.cn/zh-CN/users/707063-genexy
  4. // @version 202106101511
  5. // @description 西南科技大学学习助手,2倍速看视频,尚课平台。
  6. // @author 流浪的蛊惑
  7. // @run-at document-end
  8. // @match *://learnspace.swust.net.cn/*
  9. // @grant none
  10. // ==/UserScript==
  11. (function() {
  12. 'use strict';
  13. var gjs=0,gwxsj={gt:[]},gjdcx=true;
  14. var sftj=true;//是否初始化
  15. var gtime=0,gstu=null,gtjsj,gpidx=0;
  16. function getParams(c) {
  17. var d = {
  18. courseId: c.courseId,
  19. itemId: c.itemId,
  20. time1: CommonUtil.formatStr((new Date()).getTime(), 20),
  21. time2: CommonUtil.formatStr(parseInt(c.startTime), 20),
  22. time3: CommonUtil.formatStr(CommonUtil.timeToSeconds(c.videoTotalTime), 20),
  23. time4: CommonUtil.formatStr(parseInt(c.endTime), 20),
  24. videoIndex: c.videoIndex,
  25. time5: CommonUtil.formatStr(c.studyTimeLong, 20),
  26. terminalType: c.terminalType
  27. };
  28. return d
  29. }
  30. function gtjjl(data){
  31. var d = CommonUtil.getPlatformPath() + "/course/study/learningTime_saveVideoLearnDetailRecord.action";
  32. var p = d + "?studyRecord=" + encodeURIComponent(data);
  33. $.ajax({
  34. url: p,
  35. type: "GET",
  36. cache: false,
  37. success: function(e) {
  38. $("#gtjjg").html((new Date()).getTime()+"<br />"+e);
  39. }
  40. });
  41. }
  42. function ggetjd(data){
  43. let tjsj="{\"params.courseId\":\""+data.courseId+"\",\"params.itemId\":\""+data.itemId+"\",\"params.videoTotalTime\":\""+data.videoTotalTime+"\"}"
  44. $.ajax({
  45. method:"POST",
  46. url:"/learnspace/learn/learn/common/video_learn_record_detail.action",
  47. data:JSON.parse(tjsj),
  48. success:function(e){
  49. $("#gwxx").html(e);
  50. gjdcx=true;
  51. },
  52. error:function(xhr, textStatus, errorThrown){
  53. console.log("进入error---");
  54. console.log("状态码:"+xhr.status);
  55. console.log("状态:"+xhr.readyState);//当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。
  56. console.log("错误信息:"+xhr.statusText );
  57. console.log("返回响应信息:"+xhr.responseText );//这里是详细的信息
  58. console.log("请求状态:"+textStatus);
  59. console.log(errorThrown);
  60. console.log("请求失败");
  61. }
  62. });
  63. }
  64. setInterval(function(){
  65. let gzj1=document.getElementsByClassName("dumascroll_area");
  66. if(gzj1.length>0){
  67. let gxx=localStorage.getItem(_ACTIVITYID_);
  68. let gj1=gzj1[0].getElementsByTagName("li");
  69. for(let i=0;i<gj1.length;i++){
  70. if(gj1[i].getElementsByTagName("span")[0].className!="done"){
  71. if(gxx==null){
  72. gj1[i].getElementsByTagName("span")[0].className="done";
  73. localStorage.setItem(_ACTIVITYID_,"开始学习");
  74. gj1[i].getElementsByTagName("a")[0].click();
  75. break;
  76. }
  77. }
  78. }
  79. let gj2=gzj1[0].getElementsByClassName("s_point");
  80. for(let i=0;i<gj2.length;i++){
  81. if(gj2[i].getAttribute("itemtype")=="video" && gj2[i].getAttribute("completestate")=="0"){
  82. if(gxx==null){
  83. localStorage.setItem(_ACTIVITYID_,"开始学习");
  84. gj2[i].click();
  85. break;
  86. }
  87. }
  88. }
  89. }
  90. if(sftj){
  91. if($.defaults!=undefined){
  92. gtime=CommonUtil.timeToSeconds($.defaults.videoTotalTime);
  93. gstu=$.defaults;
  94. if(gstu.position>0){
  95. let gpro=document.getElementsByClassName("cont video1")[0];
  96. gpro.innerHTML="<div style=\"text-align:center;\"><div id=\"gzt\">平台限制最高可以2倍速度学习,学习可多开,倍速学习中…</div><div id=\"gxxjd\"></div><div id=\"gtjjg\"></div><div id=\"gwxx\"></div></div>";
  97. sftj=false;
  98. ggetjd(gstu);
  99. }
  100. gtjsj=5;
  101. }
  102. }
  103. if(gtime>0){
  104. if($(".track-undo").length>0 && gjdcx && gpidx==0){
  105. let gstr="未学习部分:";
  106. gpidx=0;
  107. gwxsj={gt:[]};
  108. for(let i=0;i<$(".track-undo").length;i++){
  109. let gsj=$(".track-undo")[i].getElementsByClassName("track-txt");
  110. let gwx={
  111. gks:CommonUtil.timeToSeconds(gsj[0].innerText.replace(/开始:/g,"")),
  112. gjs:CommonUtil.timeToSeconds(gsj[1].innerText.replace(/结束:/g,""))
  113. };
  114. gstr+="<div>从 "+gwx.gks+" 到 "+gwx.gjs+" 秒</div>";
  115. gwxsj.gt.push(gwx);
  116. }
  117. $("#gwxx").html(gstr);
  118. }
  119. if(gwxsj.gt.length>0 && gjdcx){
  120. gjdcx=false;
  121. gtime=gwxsj.gt[gpidx].gjs;
  122. gstu.startTime=gwxsj.gt[gpidx].gks;
  123. gstu.position=gwxsj.gt[gpidx].gks;
  124. gstu.endTime=gwxsj.gt[gpidx].gks;
  125. }
  126. if(gtime==0){
  127. gtime=CommonUtil.timeToSeconds($.defaults.videoTotalTime);
  128. }
  129. gstu.position+=2.1;
  130. gstu.endTime+=2.1;
  131. if(parseInt(gstu.position)>=gtime){
  132. gstu.position=gtime;
  133. gstu.endTime=gtime;
  134. gtjsj=0;
  135. gjdcx=true;
  136. gpidx++;
  137. }
  138. var gtj=getParams(gstu);
  139. gjs++;
  140. $("#gxxjd").text("当前时间:"+parseInt(gstu.position)+" 秒,结束时间:"+gtime+" 秒。");
  141. if(gjs>gtjsj){
  142. gjs=0;
  143. gtjsj=30;
  144. gstu.startTime=parseInt(gstu.position);
  145. gtjjl((CommonUtil.encrypt(JSON.stringify(gtj))));
  146. if(gpidx==gwxsj.gt.length){
  147. gtime=0;
  148. localStorage.removeItem(_ACTIVITYID_);
  149. }
  150. }
  151. }else{
  152. sftj=true;
  153. }
  154. },1000);
  155. })();

QingJ © 2025

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