Skip to content

Commit 9e7107c

Browse files
committed
添加自动开始学习设置。修改设置结构为对象
1 parent efe9f30 commit 9e7107c

File tree

1 file changed

+40
-18
lines changed

1 file changed

+40
-18
lines changed

不学习何以强国.js

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,16 @@ var news = [];
5555
var videoNum = 6;
5656
var 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+
}
5968
var pause = false;//是否暂停答题
6069
//每周答题当前页码
6170
var examWeeklyPageNo = 1;
@@ -960,14 +969,15 @@ function getToday() {
960969
function 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() {
10071017
function 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
//保存配置
10321053
function 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

Comments
 (0)