// ==UserScript== // @name 中山教师继续教育刷课 // @name:zh-CN 中山教师继续教育刷课 // @name:zh-TW 中山教師繼續教育刷課 // @namespace https://greasyfork.org/ // @version 0.07 // @description 中山教师研修网刷课 // @description:zh-CN 中山教师研修网刷课 // @description:zh-TW 中山教師研修網刷課 // @author zsynzx // @match http*://m.zsjsjy.com/teacher/train/train/train/* // @match http*://m.zsjsjy.com/teacher/train/train/online/* // @icon http://m.zsjsjy.com/favicon.ico // @license GPL // @downloadURL none // ==/UserScript== if (window.location.href.includes('m.zsjsjy.com/teacher/train/train/train/listForMine.do')) { setTimeout(function () { //如果还没选课则进入选课页面 let bStr=Array.from(document.querySelectorAll('a.normal-account-permission')) .find(el => el.innerText === '进入学习'); if (typeof bStr==="undefined") { //打开选课页面 window.location='http://m.zsjsjy.com/teacher/train/train/online/listForTeacherRegist.do?paramMap[trainMode]='; } //如果视频未完成继续学习 let aStr=Array.from(document.querySelectorAll('a.normal-account-permission')) .find(el => el.innerText === '视频未完成'); if (typeof aStr!=="undefined") { let fnStr=$(aStr).context.dataset.function; let fnArr=fnStr.split("'"); window.location='http://m.zsjsjy.com/teacher/train/train/online/study.do?registerId='+fnArr[1]+'&part='+fnArr[7]; } }, 1000); let interval = setInterval(function () { //如果有未评价则继续评价 let aStr=Array.from(document.querySelectorAll('a.normal-account-permission')) .find(el => el.innerText === '进入评价'); if (typeof aStr!=="undefined") {aStr.click(); $('.star','.star-box').click(); document.getElementById("content").value="讲解得非常好,谢谢老师!"; $("#evaluateUserResultForm").ajaxSubmit({ type: 'post', success: function(json){ json = $.myParseJSON(json); if(!$.isEmptyObject(json)){ var responseMsg = json.responseMsg; var responseCode = json.responseCode; if("00"==responseCode) {//操作成功 layer.msg("操作成功!1秒后关闭",{ time: 1000 }, function(){ layer.closeAll(); finishEvaluate(); }); } else {//操作失败 layer.msg("信息提交失败。"+responseMsg); } } } }); } else {clearInterval(interval);}//停止执行setInterval循环 }, 1000); } if (window.location.href.includes('m.zsjsjy.com/teacher/train/train/online/study.do')) { let interval = setInterval(function () { if($(".u-empty").length==0) {//当前课程的视频全部看完,进入课程列表页面 clearInterval(interval);//停止执行setInterval循环。 window.location="http://m.zsjsjy.com/teacher/train/train/train/listForMine.do";//打开课程列表网页 } else { let videoObj=document.querySelectorAll("video")[0]; videoObj.play(); videoObj.muted=true;//静音 videoObj.playbackRate = 16.0;//加速 let ID=videoObj.id;//视频ID let elevideo = document.getElementById(ID); let number = $('.g-mv-con .g-top').find("#number").val();//获取序号 elevideo.addEventListener( 'ended', () => { if($(".u-empty").length==0) { layer.msg('当前课程的视频全部看完'); } else { var newNum = parseInt(number)+1; var tabNo = $('#m-chapter-ul').find("#tg"+newNum); if(tabNo.length == 0){//则不存在对应的id layer.msg('不存在对应的id'); }else{ var videoUrl = $('#tg'+newNum).find('#videoUrl').val();//获取视频路径 var courseId = $('#tg'+newNum).find('#courseId').val();//获取课程id var chapterId = $('#tg'+newNum).find('#chapterId').val();//获取章节id var name = $('#tg'+newNum).find('a[class="tit"]').text();//获取章节标题 var videoUrlType = $('#tg'+newNum).find('#videoUrlType').val();//视频连接的类型 changeVideoShow(name,videoUrl,newNum,courseId,chapterId,videoUrlType);//调用方法 } } // false } ); } }, 1000); } if (window.location.href.includes('m.zsjsjy.com/teacher/train/train/online/listForTeacherRegist.do')) { var Total=52;//上级要求必须修学的课程总分 //获取已报名的总学分数 function getScourseAll(tableId){ var table = document.getElementById(tableId); var tbody = table.tBodies[1]; var tr = tbody.rows; var j=0; for (var i=0; i<tr.length; i++ ) { if (tr[i].cells[7].innerText === '已报名') { j=j+parseInt(tr[i].cells[6].innerText);//课程学分; } } return j; } //继续选课:再选总学分:Scourse function RegistAll(Scourse,trValue){ if (Scourse>0){ var zf=0;//已选课的总学分 var xf=0; for (var i=0; i<trValue.length; i++ ) { if (trValue[i].cells[7].innerText === '') { xf=parseInt(trValue[i].cells[6].innerText);//课程学分 zf=zf+xf; if (zf>Scourse) { zf=zf-xf; continue;//此课程学分不合适,跳到下一次循环 } else { myregist(i);//选课 } } if (zf===Scourse){ break;//选课完成,结束循环 } } } } //对页面课程列表中选择第n个课程进行报名 function myregist(n) { var radio=$(":radio[name='id']")[n]; radio.checked=true; var trainId = $(":radio[name='id']:checked").val(); var classroomId = $("#classroomId_"+trainId).val(); var data=$.ajaxSubmitValue('/manage/train/register/online/regist.do?register[trainId]='+trainId+'®ister[classroomId]='+classroomId); } //对指定表格指定列进行排序 function sortTable(tableId,Idx){ var table = document.getElementById(tableId); var tbody = table.tBodies[1]; var tr = tbody.rows; var trValue = new Array(); let j=0; for (var i=0; i<tr.length; i++ ) { if (tr[i].cells[7].innerText === '') { trValue[j] = tr[i];//将表格中各行的信息存储在新建的数组中 j++; } } if (tbody.sortCol == Idx) { trValue.reverse(); //如果该列已经进行排序过了,则直接对其反序排列 } else { //trValue.sort(compareTrs(Idx)); //进行排序 trValue.sort(function(tr1, tr2){ var value1 = tr1.cells[Idx].innerHTML; var value2 = tr2.cells[Idx].innerHTML; return value2.localeCompare(value1); }); } var fragment = document.createDocumentFragment();//新建一个代码片段,用于保存排序后的结果 for (i=0; i<trValue.length; i++ ) { fragment.appendChild(trValue[i]); } tbody.appendChild(fragment); //将排序的结果替换掉之前的值 tbody.sortCol = Idx; var sVal=getScourseAll(tableId);//已选学分 RegistAll(Total-sVal,trValue);//选课:学分必须选够,不能多,也不能少! } setTimeout(function () { //列出全部可选择的课程 var laypage=document.querySelectorAll(".laypage_main"); laypage[0].children[8].click(); //列出所有课程比较慢,等待页面加载结束 let interval = setInterval(function () { laypage=document.querySelectorAll(".laypage_main"); if (laypage.length===0) { //设置课程列表表格的ID document.querySelectorAll("table.z-crt")[0].id='mytable'; //按表格的第7列(课程学分)升序排序 sortTable('mytable',6);//第1次降序,再执行一次可升序 clearInterval(interval);//停止执行setInterval循环。 window.location="http://m.zsjsjy.com/teacher/train/train/train/listForMine.do";//打开课程列表网页 } }, 1000); }, 1000); }