新国开答题脚本

学习新思想,争做新青年!

  1. // ==UserScript==
  2. // @name 新国开答题脚本
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.27
  5. // @description 学习新思想,争做新青年!
  6. // @author DMC52859
  7. // @match https://lms.ouchn.cn/exam/*
  8. // @match https://lms.ouchn.cn/course/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=ouchn.cn
  10. // @grant none
  11. // @license MIT
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16. var jsonData;
  17. // setTimeout(function(){
  18. // jsonData = func()
  19. // console.log(jsonData)
  20. // console.log('调用成功')
  21. // },3000)
  22. window.addEventListener('load',function(){
  23. var test_url = window.location.href
  24. // console.log(test_url)
  25. if(test_url.includes('learning-activity#/exam')){
  26. console.log('这是考试结束界面')
  27. window.open(localStorage.getItem("URL"),'_selft')
  28. }
  29. var class_url = window.location.href
  30. if(class_url.includes('full-screen')){
  31. console.log('这是刷课界面')
  32. localStorage.setItem("URL",class_url)
  33. }
  34. let fun = function(){
  35. var file = document.getElementsByClassName('file-name ng-binding')
  36. var test = document.getElementsByClassName('button button-green take-exam ng-scope')
  37. var next = document.getElementsByClassName('next-btn ivu-btn ivu-btn-default')[0]
  38. var content = document.getElementsByClassName('activity-content-bd material-box')
  39. // console.log(next)
  40. //var audio = document.querySelectorAll("#root > div > section > div > div > div > div > div:nth-child(2) > section > div > div > div > div > div > div > div.render-detail-article-content > div.render-detail-content.cke-mode > div > audio")
  41. if(file.length>0 && content.length>0){
  42. // console.log('这是文件')
  43. document.getElementsByClassName('font font-table-edit-view')[0].click()
  44. try{
  45. var video1 = document.getElementsByTagName('video')[0]
  46. video1.play();
  47. video1.muted = true;
  48. setTimeout("document.getElementsByClassName('font font-close')[0].click()", 5000)
  49. next.click();
  50. }catch(error){
  51. console.log(error)
  52. setTimeout("document.getElementsByClassName('font font-close')[0].click()", 5000)
  53. next.click();
  54. }
  55. }else if($('video').length>0){
  56. // console.log('这是视频')
  57. var video = document.getElementsByTagName('video')[0];
  58. var start = document.getElementsByClassName('mvp-fonts mvp-fonts-play')[0]
  59. console.log(start)
  60. var time = video.duration // 视频总时长
  61. var currenttime = video.currentTime // 当前时长
  62. video.play()
  63. // var control_btn = document.querySelector("#multi-player-d345b19d-d118-40cb-9dc3-466beafafc02 > div > div > div > div.mvp-replay-player-all-controls > div.mvp-controls-left-area > button > i")
  64. if(document.querySelector('video').paused){
  65. // control_btn.click()
  66. // video.play()
  67. start.click()
  68. video.playbackRate = 1 ; //控制视频播放速度:2倍速
  69. video.muted = true;
  70. if(currenttime == time){
  71. document.getElementsByClassName('next-btn ivu-btn ivu-btn-default')[0].click();
  72. }
  73. }else if(document.querySelector('video').played){
  74. start.click()
  75. video.playbackRate = 1 ; //控制视频播放速度:2倍速
  76. video.muted = true;
  77. if(currenttime == time){
  78. document.getElementsByClassName('next-btn ivu-btn ivu-btn-default')[0].click();
  79. }
  80. }
  81. }else if(test.length>0){
  82. //console.log('进入考试')
  83. if(document.querySelectorAll("body > div.wrapper > div.main-content.gtm-category > div:nth-child(9) > div > div.activity-area.clearfix.exam-area > div.activity-content-wrapper > div.___content > div > div > div > div > div > div:nth-child(1) > div > div.bd > div.submission-list.exam-area.ng-scope > div > ul > li:nth-child(1)").length<1){
  84. setTimeout(function(){
  85. try{
  86. document.getElementsByName('confirm')[0].click();
  87. document.getElementsByClassName('button button-green medium ng-binding')[0].click();
  88. }catch(error){
  89. next.click();
  90. }
  91. },8000)
  92. }else if(document.querySelectorAll("body > div.wrapper > div.main-content.gtm-category > div:nth-child(9) > div > div.activity-area.clearfix.exam-area > div.activity-content-wrapper > div.___content > div > div > div > div > div > div:nth-child(1) > div > div.bd > div.submission-list.exam-area.ng-scope > div > ul > li:nth-child(1)").length>=1){
  93. document.getElementsByClassName('next-btn ivu-btn ivu-btn-default')[0].click();
  94. }
  95. //next.click();
  96. }else if(document.querySelectorAll("body > div.wrapper > div.main-content.gtm-category > div.content-under-nav-2.with-loading.exam-activity-container.ng-scope > div.bd > div > div > div.exam-area-content > div > div.paper-content.card > div").length>0){
  97. //console.log('开始考试')
  98. $('.exam-subjects ol li').each(function(){
  99. var self1 = $(this)
  100. var classname = self1.attr('class')
  101. //console.log(classname)
  102. if(classname == 'subject ng-scope single_selection'){
  103. console.log('这是单选题')
  104. // 获取题目
  105. var q1 = self1.children('div').children('div').children('div').children('span').children('p')
  106. var que1 = q1.text().replace(/[–!.?&\|\\\*^%$#@\-_—。,“”"" 【】→(  )、()­?:\s+]/g,"")
  107. console.log(que1)
  108. // 获取JSON答案
  109. var da_an1 = jsonData[que1]
  110. console.log('答案:'+da_an1)
  111. // 获取选项
  112. var xuanxiang1;
  113. if(self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span').children('p').length==0){
  114. xuanxiang1 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span')
  115. }else{
  116. xuanxiang1 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span').children('p')
  117. }
  118. //var xx = self1.children('div').children('div').eq(1).children('ol').children('li')
  119. var ans1 = [];
  120. for(var i=0;i<xuanxiang1.length;i++){
  121. ans1[i] = xuanxiang1[i].innerText.replace(/[,、,''""‘’“”.。|\n\s+]/g,"")
  122. console.log(ans1[i])
  123. }
  124. for(var a=0;a<ans1.length;a++){
  125. // console.log(ans1[a])
  126. if(ans1[a] == da_an1){
  127. console.log('匹配成功')
  128. var xx1 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label')[a]
  129. xx1.click();
  130. console.log(xx1)
  131. }
  132. }
  133. }else if(classname == 'subject ng-scope multiple_selection'){
  134. console.log('这是多选题')
  135. // 获取题目
  136. var q2 = self1.children('div').children('div').children('div').children('span').children('p')
  137. console.log(q2)
  138. var que2 = q2.text().replace(/[–!.?&\|\\\*^%$#@\-_—。,“”"" 【】→(  )、()­?:\s+]/g,"")
  139. console.log(que2)
  140. var da_an2 = jsonData[que2]
  141. console.log(da_an2)
  142. var xuanxiang2;
  143. if(self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span').children('p').length==0){
  144. xuanxiang2 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span')
  145. }else{
  146. xuanxiang2 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span').children('p')
  147. }
  148. // var xuanxiang2 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span').children('p')
  149. console.log(xuanxiang2)
  150. var ans2 = []
  151. for(var b=0;b<xuanxiang2.length;b++){
  152. ans2[b] = xuanxiang2[b].innerText.replace(/[,、,''""‘’“”.。|\n\s+]/g,"")
  153. console.log(ans2[b])
  154. var reg = new RegExp(ans2[b])
  155. if(reg.test(da_an2)){
  156. console.log('匹配成功')
  157. var xx2 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label')[b]
  158. xx2.click();
  159. }else{
  160. console.log('匹配失败')
  161. }
  162. }
  163.  
  164. }else if(classname == 'subject ng-scope true_or_false'){
  165. console.log('这是判断题')
  166. // 获取题目
  167. var q3 = self1.children('div').children('div').children('div').children('span').children('p')
  168. console.log(q3)
  169. var que3 = q3.text().replace(/[–!.?&\|\\\*^%$#@\-_—。,“”"" 【】→(  )、()­?:\s+]/g,"")
  170. console.log(que3)
  171. // 获取答案
  172. var da_an3 = jsonData[que3]
  173. console.log(da_an3)
  174. // 获取选项
  175. var xuanxiang3 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label').children('div').children('span')
  176. console.log(xuanxiang3)
  177. var ans3 = []
  178. for(var c=0;c<xuanxiang3.length;c++){
  179. ans3[c] = xuanxiang3[c].innerText.replace(/[,、,''""‘’“”.。|\n\s+]/g,"")
  180. console.log(ans3[c])
  181. }
  182. for(var d=0;d<ans3.length;d++){
  183. if(ans3[d]==da_an3){
  184. console.log('匹配成功')
  185. var xx3 = self1.children('div').children('div').eq(1).children('ol').children('li').children('label')[d]
  186. console.log(xx3)
  187. xx3.click()
  188. }else{
  189. //console.log('匹配失败')
  190. }
  191. }
  192.  
  193. }
  194. })
  195. //document.querySelector("body > div.wrapper > div.main-content.gtm-category > div.content-under-nav-2.with-loading.exam-activity-container.ng-scope > div.bd > div > div > div.exam-area-content > div > div.paper-footer > a")
  196. setTimeout(function(){
  197. // document.querySelector("#submit-exam-confirmation-popup > div > div.popup-footer > div > button.button.button-green.medium").click();
  198. },3000)
  199. //next.click();
  200. }else{
  201. next.click();
  202. }
  203. }
  204. setInterval(function(){
  205. fun();
  206. }, 5000)
  207. var status = this.document.getElementsByClassName('toast-message')
  208. setInterval(function(){
  209. if(status.length>0){
  210. status[0].click()
  211. }
  212. })
  213. })
  214. })();

QingJ © 2025

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