您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2019-09-05更新
当前为
// ==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 // ==/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('<p class="title" id="p_gobtn" style="color: blue;cursor: pointer;">加速学习</p>'); $("body").append('<script src="/js/sign/crypto-js/core.js"></script><script src="/js/sign/crypto-js/md5.js"></script><script src="/js/sign/sign.js"></script>'); $("#p_gobtn").click(e=>{ $("body").append('<div id="divConsole" style="height:600px;width:300px;position: fixed;top: 30px;background-color: #000;left: 15px;color: #aaa;border-radius: 10px;padding: 8px;overflow-y: auto;">>>学习进度面板<br/></div>') $("li.xuanji").each((i,n)=>{ if(n.outerHTML.indexOf("已学")<0){ var url=$(n).find("a")[0].getAttribute("href"); $(n).find(".content>.course-mes").append('<span style="line-height: 30px;color: blue;float: right;margin-right: 15px;cursor: pointer;"><a href="javascript:gosss(\''+url+'\')">学习</a></span>'); } }); $(".xuanji-item").each((i,n)=>{ if(n.outerHTML.indexOf("已学")<0){ var url=n.getAttribute("href"); $(n).find(".xuanji-content>.course-mes").append('<span style="line-height: 30px;color: blue;float: right;margin-right: 15px;cursor: pointer;"><a href="javascript:gosss(\''+url+'\')">学习</a></span>'); } }); }); window.divlog=function(n,s,c){ if(!c) c="#aaa"; $("#divConsole").append(">><span style='color:#fff'>"+n+"</span>:<span style='color:"+c+"'>"+s+"</span><br/>"); } 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"); }); } })();