@@ -55,7 +55,16 @@ var news = [];
5555var videoNum = 6 ;
5656var videos = [ ] ;
5757//配置
58- var settings = [ ] ;
58+ var settings = { } ;
59+ var settingsDefault = {
60+ News :true , //0
61+ Video :true , //1
62+ ExamPractice :true , //6 每日答题
63+ ExamWeekly :true , //2 每周答题
64+ ExamPaper :true , //5 专项练习
65+ ShowMenu :false , //7 隐藏菜单
66+ AutoStart :false , //是否加载脚本后自动播放
67+ }
5968var pause = false ; //是否暂停答题
6069//每周答题当前页码
6170var examWeeklyPageNo = 1 ;
@@ -960,14 +969,15 @@ function getToday() {
960969function initSetting ( ) {
961970 try {
962971 let settingTemp = JSON . parse ( GM_getValue ( 'studySetting' ) ) ;
963- if ( settingTemp != null ) {
972+ if ( settingTemp != null && Object . prototype . toString . call ( settingTemp ) === '[object Object]' ) {
973+ // 增加判断是否为旧数组类型缓存
964974 settings = settingTemp ;
965975 } else {
966- settings = [ true , true , true , true , true , true , true , false ] ;
976+ settings = JSON . parse ( JSON . stringify ( settingsDefault ) ) ;
967977 }
968978 } catch ( e ) {
969979 //没有则直接初始化
970- settings = [ true , true , true , true , true , true , true , false ] ;
980+ settings = JSON . parse ( JSON . stringify ( settingsDefault ) ) ;
971981 }
972982}
973983//创建“手动答题”按钮
@@ -1007,7 +1017,10 @@ function clickManualButton() {
10071017function createStartButton ( ) {
10081018 let base = document . createElement ( "div" ) ;
10091019 var baseInfo = "" ;
1010- baseInfo += "<form id=\"settingData\" class=\"egg_menu\" action=\"\" target=\"_blank\" onsubmit=\"return false\"><div class=\"egg_setting_box\"><div class=\"egg_setting_item\"><label>新闻<\/label><input class=\"egg_setting_switch\" type=\"checkbox\" name=\"0\" " + ( settings [ 0 ] ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>视频<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"1\" " + ( settings [ 1 ] ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>每日答题<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"6\" " + ( settings [ 6 ] ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>每周答题<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"2\" " + ( settings [ 2 ] ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>专项练习<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"5\" " + ( settings [ 5 ] ? 'checked' : '' ) + "\/><\/div><hr \/><div title='Tip:开始学习后,隐藏相关页面和提示(不隐藏答题中的关闭自动答题按钮)' class=\"egg_setting_item\"> <label>运行隐藏<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"7\"" + ( settings [ 7 ] ? 'checked' : '' ) + "/></div><a style=\"text-decoration: none;\" title=\"视频不自动播放?点此查看解决办法\" target=\"blank\" href=\"https://docs.qq.com/doc/DZllGcGlJUG1qT3Vx\"><div style=\"color:#5F5F5F;font-size:14px;\" class=\"egg_setting_item\"><label style=\"cursor: pointer;\">视频不自动播放?<\/label><\/div><\/a><\/div><\/form>" ;
1020+ baseInfo += "<form id=\"settingData\" class=\"egg_menu\" action=\"\" target=\"_blank\" onsubmit=\"return false\"><div class=\"egg_setting_box\"><div class=\"egg_setting_item\"><label>新闻<\/label><input class=\"egg_setting_switch\" type=\"checkbox\" name=\"News\" " + ( settings . News ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>视频<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"Video\" " + ( settings . Video ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>每日答题<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"ExamPractice\" " + ( settings . ExamPractice ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>每周答题<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"ExamWeekly\" " + ( settings . ExamWeekly ? 'checked' : '' ) + "\/> <\/div> <div class=\"egg_setting_item\"> <label>专项练习<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"ExamPaper\" " + ( settings . ExamPaper ? 'checked' : '' ) + "\/><\/div><hr \/><div title='Tip:开始学习后,隐藏相关页面和提示(不隐藏答题中的关闭自动答题按钮)' class=\"egg_setting_item\"> <label>运行隐藏<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"ShowMenu\"" + ( settings . ShowMenu ? 'checked' : '' ) + "/></div>" +
1021+ "<div title='Tip:进入学习首页5秒后自动开始学习' class=\"egg_setting_item\"> <label>自动开始<\/label> <input class=\"egg_setting_switch\" type=\"checkbox\" name=\"AutoStart\"" + ( settings . AutoStart ? 'checked' : '' ) + "/></div>"
1022+ +
1023+ "<a style=\"text-decoration: none;\" title=\"视频不自动播放?点此查看解决办法\" target=\"blank\" href=\"https://docs.qq.com/doc/DZllGcGlJUG1qT3Vx\"><div style=\"color:#5F5F5F;font-size:14px;\" class=\"egg_setting_item\"><label style=\"cursor: pointer;\">视频不自动播放?<\/label><\/div><\/a><\/div><\/form>" ;
10111024 base . innerHTML = baseInfo ;
10121025 let body = document . getElementsByTagName ( "body" ) [ 0 ] ;
10131026 body . append ( base )
@@ -1027,17 +1040,26 @@ function createStartButton() {
10271040 }
10281041 //插入节点
10291042 body . append ( startButton )
1043+
1044+ if ( settings . AutoStart ) {
1045+ setTimeout ( ( ) => {
1046+ if ( startButton . innerText === "开始学习" ) {
1047+ start ( )
1048+ }
1049+ } , 5000 )
1050+ }
10301051}
10311052//保存配置
10321053function saveSetting ( ) {
10331054 let form = document . getElementById ( "settingData" ) ;
10341055 let formData = new FormData ( form ) ;
1035- settings [ 0 ] = ( formData . get ( '0' ) != null ) ;
1036- settings [ 1 ] = ( formData . get ( '1' ) != null ) ;
1037- settings [ 6 ] = ( formData . get ( '6' ) != null ) ;
1038- settings [ 2 ] = ( formData . get ( '2' ) != null ) ;
1039- settings [ 5 ] = ( formData . get ( '5' ) != null ) ;
1040- settings [ 7 ] = ( formData . get ( '7' ) != null ) ; //运行时是否要隐藏
1056+ settings . News = ( formData . get ( 'News' ) != null ) ;
1057+ settings . Video = ( formData . get ( 'Video' ) != null ) ;
1058+ settings . ExamPractice = ( formData . get ( 'ExamPractice' ) != null ) ;
1059+ settings . ExamWeekly = ( formData . get ( 'ExamWeekly' ) != null ) ;
1060+ settings . ExamPaper = ( formData . get ( 'ExamPaper' ) != null ) ;
1061+ settings . ShowMenu = ( formData . get ( 'ShowMenu' ) != null ) ; //运行时是否要隐藏
1062+ settings . AutoStart = ( formData . get ( 'AutoStart' ) != null ) ; //是否自动启动
10411063 GM_setValue ( 'studySetting' , JSON . stringify ( settings ) ) ;
10421064}
10431065//是否显示目录
@@ -1059,7 +1081,7 @@ async function start() {
10591081 startButton . innerText = "正在学习" ;
10601082 startButton . style . cursor = "default" ;
10611083 startButton . setAttribute ( "disabled" , true ) ;
1062- if ( settings [ 7 ] ) {
1084+ if ( settings . ShowMenu ) {
10631085 showMenu ( false ) ;
10641086 }
10651087 let taskProgress = null ;
@@ -1073,7 +1095,7 @@ async function start() {
10731095 console . log ( "开始学习" )
10741096
10751097 //检查新闻
1076- if ( settings [ 0 ] && taskProgress [ 0 ] . currentScore != taskProgress [ 0 ] . dayMaxScore ) {
1098+ if ( settings . News && taskProgress [ 0 ] . currentScore != taskProgress [ 0 ] . dayMaxScore ) {
10771099 tasks [ 0 ] = false ; //只要还有要做的,就当做没完成
10781100 newsNum = taskProgress [ 0 ] . dayMaxScore - taskProgress [ 0 ] . currentScore ; //还需要看多少个新闻
10791101 console . log ( "1.看新闻" ) ;
@@ -1085,7 +1107,7 @@ async function start() {
10851107 //检查视频
10861108 let temp = parseInt ( taskProgress [ 1 ] . dayMaxScore - taskProgress [ 1 ] . currentScore ) ;
10871109 let temp2 = parseInt ( taskProgress [ 3 ] . dayMaxScore - taskProgress [ 3 ] . currentScore ) ;
1088- if ( settings [ 1 ] && ( temp != 0 || temp2 != 0 ) ) {
1110+ if ( settings . Video && ( temp != 0 || temp2 != 0 ) ) {
10891111 tasks [ 1 ] = false ; //只要还有要做的,就当做没完成
10901112 videoNum = temp > temp2 ? temp : temp2 ; //还需要看多少个视频
10911113 console . log ( "2.看视频" ) ;
@@ -1095,7 +1117,7 @@ async function start() {
10951117 }
10961118
10971119 //检查每日答题
1098- if ( settings [ 6 ] && taskProgress [ 6 ] . currentScore != taskProgress [ 6 ] . dayMaxScore ) {
1120+ if ( settings . ExamPractice && taskProgress [ 6 ] . currentScore != taskProgress [ 6 ] . dayMaxScore ) {
10991121 tasks [ 2 ] = false ; //只要还有要做的,就当做没完成
11001122 console . log ( "3.做每日答题" ) ;
11011123 await doExamPractice ( ) ;
@@ -1104,7 +1126,7 @@ async function start() {
11041126 }
11051127
11061128 //检查每周答题
1107- if ( settings [ 2 ] && taskProgress [ 2 ] . currentScore == 0 ) {
1129+ if ( settings . ExamWeekly && taskProgress [ 2 ] . currentScore == 0 ) {
11081130 tasks [ 3 ] = false ; //只要还有要做的,就当做没完成
11091131 console . log ( "4.做每周答题" ) ;
11101132 let result = await doExamWeekly ( ) ;
@@ -1117,7 +1139,7 @@ async function start() {
11171139 }
11181140
11191141 //检查专项练习
1120- if ( settings [ 5 ] && taskProgress [ 5 ] . currentScore == 0 ) {
1142+ if ( settings . ExamPaper && taskProgress [ 5 ] . currentScore == 0 ) {
11211143 tasks [ 4 ] = false ; //只要还有要做的,就当做没完成
11221144 console . log ( "5.做专项练习" ) ;
11231145 let result = await doExamPaper ( ) ;
@@ -1142,7 +1164,7 @@ async function start() {
11421164 console . log ( "已完成" )
11431165 startButton . innerText = "已完成" ;
11441166 startButton . style . color = "#c7c7c7" ;
1145- if ( settings [ 7 ] ) {
1167+ if ( settings . ShowMenu ) {
11461168 showMenu ( )
11471169 }
11481170 } else {
0 commit comments