超星学习通课程资源直链下载

超星学习通课程资源直链下载,支持ppt(x),doc(x),pdf,mp4,flv,mp3,avi资源的下载,支持整节课资源批量下载。

2021-03-02 일자. 최신 버전을 확인하세요.

  1. // ==UserScript==
  2. // @name 超星学习通课程资源直链下载
  3. // @namespace https://github.com/ColdThunder11/ChaoXingDownload
  4. // @version 0.27
  5. // @description 超星学习通课程资源直链下载,支持ppt(x),doc(x),pdf,mp4,flv,mp3,avi资源的下载,支持整节课资源批量下载。
  6. // @author ColdThunder11
  7. // @match *://*.chaoxing.com/mycourse/studentstudy?chapterId=*&courseId=*&clazzid=*&enc=*
  8. // @match *://*.chaoxing.com/coursedata?classId=*&courseId=*&type=*&ut=*&enc=*&cpi=*&openc=*
  9. // @match *://*.chaoxing.com/coursedata?courseId=*&classId=*&type=*&enc=*&ut=*&openc=*
  10. // @match *://*.chaoxing.com/coursedata/search?dataName=*&courseId=*&classId=*&ut=*&cpi=*&openc=*
  11. // @match *://*.chaoxing.com/coursedata?courseId=*&classId=*&type=*&ut=*&enc=*&cpi=*&openc=*
  12. // @match *://*.chaoxing.com/coursedata?courseId=*&dataName=*&dataId=*&type=*&parent=*&flag=*&classId=*&enc*&ut=*&cpi=*&openc=*
  13. // @match *://*.edu.cn/mycourse/studentstudy?chapterId=*&courseId=*&clazzid=*&enc=*
  14. // @match *://*.edu.cn/coursedata?classId=*&courseId=*&type=*&ut=*&enc=*&cpi=*&openc=*
  15. // @match *://*.edu.cn/coursedata?courseId=*&classId=*&type=*&enc=*&ut=*&openc=*
  16. // @match *://*.edu.cn/coursedata/search?dataName=*&courseId=*&classId=*&ut=*&cpi=*&openc=*
  17. // @match *://*.edu.cn/coursedata?courseId=*&classId=*&type=*&ut=*&enc=*&cpi=*&openc=*
  18. // @match *://*.edu.cn/coursedata?courseId=*&dataName=*&dataId=*&type=*&parent=*&flag=*&classId=*&enc*&ut=*&cpi=*&openc=*
  19. // @grant none
  20. // @supportURL https://github.com/ColdThunder11/ChaoXingDownload/issues
  21. // ==/UserScript==
  22.  
  23.  
  24. (function() {
  25. 'use strict';
  26. var url=document.location.toString();
  27. if(url.indexOf("coursedata")!=-1){
  28. setTimeout(()=>{
  29. if(document.getElementsByClassName("ct11_dl")[0]==null){
  30. var fileList=document.getElementsByClassName("ZYCon")[0].childNodes[1].childNodes[3].childNodes;
  31. for(var i=0;i<fileList.length;i++){
  32. try{
  33. if(fileList[i].getAttribute("type")!="afolder"){
  34. var objectid=fileList[i].getAttribute("objectid");
  35. var downloadTag = document.createElement("A");
  36. downloadTag.setAttribute("href","https://cs-ans.chaoxing.com/download/"+objectid);
  37. downloadTag.setAttribute("class","ct11_dl");
  38. downloadTag.innerHTML="下载";
  39. fileList[i].childNodes[3].childNodes[1].appendChild(downloadTag);
  40. }
  41. }
  42. catch(e){}
  43. }
  44. }
  45. },1500);
  46. }
  47. else{
  48. setInterval(()=>{
  49. var haveResource=false;
  50. var downloadLinks;
  51. var iframes=document.getElementsByTagName("iframe");
  52. for(var i=0;i<iframes.length;i++){
  53. var frames=iframes[i].contentWindow.document.getElementsByTagName("iframe");
  54. for(var j=0;j<frames.length;j++){
  55. var frame=frames[j];
  56. if(!frame) return;
  57. var fdiv=frame.parentNode;
  58. if(!fdiv) return;
  59. if(iframes[i].contentWindow.document.getElementsByClassName("ct11_dl")[j]!=null) return;
  60. var data=frame.getAttribute('data');
  61. if(data!=null){
  62. var jsondata=JSON.parse(data);
  63. if(jsondata.type==".ppt"||jsondata.type==".pptx"||jsondata.type==".mp4"||jsondata.type==".pdf"||jsondata.type==".flv"||jsondata.type==".doc"||jsondata.type==".docx"||jsondata.type==".avi"||jsondata.type==".wmv"||jsondata.type==".mpg"||jsondata.type==".mpeg"){
  64. if(!haveResource) {
  65. haveResource=true;
  66. downloadLinks=new Array();
  67. }
  68. downloadLinks.push("https://cs-ans.chaoxing.com/download/"+jsondata.objectid)
  69. var downloadTag = document.createElement("A");
  70. downloadTag.setAttribute("href","https://cs-ans.chaoxing.com/download/"+jsondata.objectid);
  71. downloadTag.setAttribute("class","ct11_dl");
  72. downloadTag.setAttribute("style","font-size: 14px;color: #666666;");
  73. downloadTag.innerHTML="点此下载 "+jsondata.name;
  74. fdiv.appendChild(downloadTag);
  75. continue;
  76. }
  77. }
  78. if(frame.getAttribute("name")==null) continue;
  79. if(frame.getAttribute("name").substr(frame.getAttribute("name").length-4,4)==".mp3"){
  80. if(!haveResource) {
  81. haveResource=true;
  82. downloadLinks=new Array();
  83. }
  84. downloadLinks.push("https://cs-ans.chaoxing.com/download/"+frame.getAttribute("objectid"))
  85. var adownloadTag = document.createElement("A");
  86. adownloadTag.setAttribute("href","https://cs-ans.chaoxing.com/download/"+frame.getAttribute("objectid"));
  87. adownloadTag.setAttribute("class","ct11_dl");
  88. adownloadTag.setAttribute("style","font-size: 14px;color: #666666;");
  89. adownloadTag.innerHTML="点此下载 "+frame.getAttribute("name");
  90. fdiv.appendChild(adownloadTag);
  91. continue;
  92. }
  93.  
  94. }
  95. }
  96. if(haveResource){
  97. if(iframes[0].parentNode.getElementsByClassName("ct11_dl")[0]!=null) iframes[0].parentNode.getElementsByClassName("ct11_dl")[0].remove()
  98. var allDownloadTag = document.createElement("A");
  99. allDownloadTag.setAttribute("class","ct11_dl");
  100. allDownloadTag.setAttribute("style","font-size: 14px;color: #666666;");
  101. allDownloadTag.setAttribute("href","javascript:void(0)");
  102. allDownloadTag.innerHTML="点此下载本节内的全部资源";
  103. allDownloadTag.onclick = function name(params) {
  104. for(var i=0;i<downloadLinks.length;i++){
  105. const iiframe = document.createElement("iframe");
  106. iiframe.style.display = "none";
  107. iiframe.style.height = 0;
  108. iiframe.src = downloadLinks[i];
  109. document.body.appendChild(iiframe);
  110. setTimeout(()=>{
  111. iiframe.remove();
  112. }, 10000);
  113. }
  114. }
  115. iframes[0].parentNode.insertBefore(allDownloadTag,iframes[0])
  116. }
  117. },3000);
  118. }
  119. })();