// ==UserScript== // @name 灯塔党建视频学习 // @namespace aaron.js.greasyfork.org // @version 1.5 // @description 2019-09-05更新 // @author Aaron // @match *.dtdjzx.gov.cn/course/special/* // @match *.dtdjzx.gov.cn/recommend // @grant none // @downloadURL https://update.greasyfork.icu/scripts/370800/%E7%81%AF%E5%A1%94%E5%85%9A%E5%BB%BA%E8%A7%86%E9%A2%91%E5%AD%A6%E4%B9%A0.user.js // @updateURL https://update.greasyfork.icu/scripts/370800/%E7%81%AF%E5%A1%94%E5%85%9A%E5%BB%BA%E8%A7%86%E9%A2%91%E5%AD%A6%E4%B9%A0.meta.js // ==/UserScript== var user1=0; (function() { 'use strict'; // Your code here... $.postJSON("/bintang/getUserId", {}).then(e=>{ if(e) user1=e; else alert("请登录"); }) $($(".top.clearfix")[1]).append('

加速学习

'); $("body").append(''); $("#p_gobtn").click(e=>{ $("body").append('
>>学习进度面板
') $("li.xuanji").each((i,n)=>{ if(n.outerHTML.indexOf("已学")<0){ var url=$(n).find("a")[0].getAttribute("href"); $(n).find(".content>.course-mes").append('学习'); } }); $(".xuanji-item").each((i,n)=>{ if(n.outerHTML.indexOf("已学")<0){ var url=n.getAttribute("href"); $(n).find(".xuanji-content>.course-mes").append('学习'); } }); }); window.divlog=function(n,s,c){ if(!c) c="#aaa"; $("#divConsole").append(">>"+n+""+s+"
"); } window.gosss=function(url){ divlog("新的学习","正在载入……"); $.get(url).error(e=>{ divlog("新的学习","载入失败!","#f00"); }).then((h,s,o)=>{ var project2 = JSON.parse($(h).find("#script_course").html()); var str=$($(h).find("script")[3]).html(); window.appSecret=str.substring(str.indexOf("'")+1,str.indexOf(";")-1); aaAddTimeCount(project2); $(h).find("xuanji-item").each((i,n)=>{ $.get(n.href).then((h1,s1,o1)=>{ var project1 = JSON.parse($(h1).find("#script_course").html()); aaAddTimeCount(project2); }) }); }); } window.aaAddTimeCount=function(project){ //$.get("http://v.dtdjzx.gov.cn/dyjy/video/"+project.sdPath); divlog(project.courseName,"正在载入……"); $.postJSON("/bintang/addTimeCount", project).fail(e=>{ divlog(project.courseName,"载入超时","#F00"); }).then(data=>{ if(data.code){ $.postJSON("/bintang/getUserId", {}).fail(e=>{ divlog(project.courseName,"载入超时","#F00"); }).then( function(data) { var userId = data; var getStudyTimes=parseInt(project.courseDuration*60-3); setTimeout(()=>{ aaToprogress(userId,project,getStudyTimes,'recordProgress'); },1000); setTimeout(()=>{ aaToprogress(userId,project,project.courseDuration*60,'updateTimeEnd'); },5000); }); }else{ divlog(project.courseName,"载入失败","#F00"); } }); } window.aaToprogress=function(userId,project,getStudyTimes,u){ //var appSecret = '如果自动获取失败,这里替换成你自己的appSecret'; if(!appSecret){ divlog("自动获取appSecret失败,请修改第92行代码。") } var receive = { timelength:project.courseDuration, courseId:project.courseId, userId:userId, studyTimes:getStudyTimes } var requestParam = { courseId:project.courseId, userId:userId, studyTimes:getStudyTimes } var appKey = userId; var timestamp = new Date().getTime(); var nonce = guid(); var signatureType = 'MD5'; var authType = 'ACCESSKEY'; var signatureVersion = '1'; var requestUri = '/bintang/recordProgress'; var signature = sign(appKey, appSecret, requestUri, timestamp, nonce, requestParam); var signatureEntity = { 'appKey' : appKey, 'timestamp' : timestamp, 'nonce' : nonce, 'signatureType' : signatureType, 'authType' : authType, 'signatureVersion' : signatureVersion, 'requestUri' : requestUri, 'signature' : signature }; $.postJSON("/bintang/"+u, { 'signatureEntity' : signatureEntity, 'receive' : receive }).then(function(data) { if(data.isRecord){ divlog(project.courseName,"学习完成","#0F0"); } }).fail(e=>{ var msg="学习失败"; if(e.status==500) msg="服务器端发生错误"; else if(e.status>=400 && e.status<500) msg="学习资源未找到"; divlog(project.courseName,msg,"#F00"); }); } })();