// ==UserScript== // @name 高等继续教育网自动刷课刷题 // @namespace http://greasyfork.org/ // @version 1.2 // @description 高等继续教育网自动刷课刷题,只适用于该网址:?.jxjypt.cn // @author Roc.w // @match http*://*.jxjypt.cn/* // @icon https://www.jxjypt.cn/indexpage/images/icon.ico // @grant none // @license AGPL License // @downloadURL none // ==/UserScript== console.log('您已进入高等继续教育网') init() function init() { let param = { ele: document.createElement('div'), css: "position:fixed;" + "bottom:100px;" + "box-shadow:10px 10px 10px gray;" + "right:20px;" + "display:block;" + "font-size:14px;" + "color:#fff;" + "z-index:1000;" + "height:70px;" + "width:70px;" + "background:#f44336;" + "border-radius:50%;" + "line-height:70px;" + "text-align:center;"+ "cursor: pointer;" }; document.querySelector('body').appendChild(((ele)=> { ele.id = 'smart-topic'; ele.innerHTML = '一键观答'; ele.style.cssText = param.css; return ele; })(param.ele)); } //监听智能操作 document.getElementById("smart-topic").addEventListener("click", function(){ watch(); answer(); }); //作业答题 function answer(){ //自动展开答案 var zkjxs = document.getElementsByClassName('zkjx') for (let i = 0; i < zkjxs.length; i++) { zkjxs[i].click() } //自动填充填空、简答题答案 var wenzis = document.getElementsByClassName('wenzi') for (let i = 0; i < wenzis.length; i++) { if((i%2)===0){ var txt = wenzis[i].innerHTML.replace(/^\s*|\s*$/g, "").replace(/ /gi, "") var textarea = document.getElementsByClassName('e__textarea') if (textarea.length>0) { textarea[(i/2)].value = txt } //有可能是课程选择题 var danan = wenzis[(i/2)].innerHTML.replace(/^\s*|\s*$/g, "").replace(/ /gi, "") var options = document.getElementsByClassName('m-question-option'); for (let j = 0; j < options.length; j++) { var vale = options[j].getAttribute('data-value'); if (danan==vale) { options[j].click() } } } } //自动选择选择题答案 var rights = document.getElementsByClassName('right') for (let i = 0; i < rights.length; i++) { var daan = rights[i].innerHTML var answers = document.getElementsByClassName('sub-answer sub-picon-no clearfix ') for (let j = 0; j < answers[i].children.length; j++) { var val = answers[i].children[j].getAttribute('data-value'); for (let k = 0; k < daan.length; k++) { if (daan[k]==val) { answers[i].children[j].click() } } } } } //观看课程 async function watch() { var courses = document.getElementsByClassName('z-gery-icon') for (let i = 0; i < courses.length; i++) { await (function(){ return new Promise(function(res, rej){ setTimeout(function(){ courses[i].click(); try { var jid = courses[i].getAttribute('data-jie-id'); if (jid) { var pid = document.getElementsByClassName('sub-content m-question')[0].getAttribute('data-pid'); var qid = document.getElementsByClassName('sub-content m-question')[0].getAttribute('data-qid'); var sid = document.getElementsByClassName('sub-content m-question')[0].getAttribute('data-sid'); var answer = document.getElementsByClassName('wenzi')[0].innerHTML.replace(/^\s*|\s*$/g, "").replace(/ /gi, ""); var param = 'sid='+sid+'&jid='+jid+'&qid='+qid+'&pid='+pid+'&answer='+answer+'' console.log('提交答案---'+param) var callback = function(data) { console.log(data) } postData('/classroom/question/submit',param,callback) } } catch (error) { } res(); },2000) }) }()) } if (courses.length>0) { location.reload() } } //psot请求 function postData(url, param, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ callback && callback(xhr.responseText); } } } xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); xhr.send(param); }