Script Archived
This script has been archived by the author. The script may be no longer functional, and the author no longer maintains it. You cannot provide feedback for this script.
// ==UserScript==
// @name 国家安全知识竞赛秒过(ScriptCat后台脚本)
// @namespace Ne-21
// @version 1.0.5
// @description 国家安全知识竞赛秒过100分,浏览器启动后自动执行,ScriptCat专用后台脚本,后台脚本是脚本猫特有的脚本所以不支持油猴。
// @author Ne-21
// @crontab * * once * *
// @connect gjaqzsjs.haedu.cn
// @grant unsafeWindow
// @grant GM_xmlhttpRequest
// @grant GM_log
// @grant GM_notification
// @grant GM_getValue
// @background
// @debug
// ==/UserScript==
/* ==UserConfig==
UserInfo:
schoolName:
title: 学校名称
description: 学校名称
type: select
values: ['安阳工学院', '安阳师范学院', '安阳学院', '河南财经政法大学', '河南财政金融学院', '河南城建学院', '河南大学', '河南工程学院', '河南工学院', '河南工业大学', '河南警察学院', '河南开封科技传媒学院', '河南科技大学', '河南科技学院', '河南科技学院新科学院', '河南科技职业大学', '河南理工大学', '河南牧业经济学院', '河南农业大学', '河南师范大学', '河南中医药大学', '华北水利水电大学', '黄河交通学院', '黄河科技学院', '黄淮学院', '洛阳理工学院', '洛阳师范学院', '南阳理工学院', '南阳师范学院', '平顶山学院', '商丘工学院', '商丘师范学院', '商丘学院', '新乡学院', '新乡医学院', '新乡医学院三全学院', '信阳农林学院', '信阳师范学院', '信阳学院', '许昌学院', '郑州财经学院', '郑州大学', '郑州工程技术学院', '郑州工商学院', '郑州工业应用技术学院', '郑州航空工业管理学院', '郑州经贸学院', '郑州科技学院', '郑州轻工业大学', '郑州商学院', '郑州升达经贸管理学院', '郑州师范学院', '郑州西亚斯学院', '中原工学院', '中原科技学院', '周口师范学院', '安阳幼儿师范高等专科学校', '安阳职业技术学院', '长垣烹饪职业技术学院', '河南测绘职业学院', '河南地矿职业学院', '河南对外经济贸易职业学院', '河南工业和信息化职业学院', '河南工业贸易职业学院', '河南工业职业技术学院', '河南护理职业学院', '河南机电职业学院', '河南检察职业学院', '河南建筑职业技术学院', '河南交通职业技术学院', '河南经贸职业学院', '河南林业职业学院', '河南农业职业学院', '河南女子职业学院', '河南轻工职业学院', '河南水利与环境职业学院', '河南司法警官职业学院', '河南推拿职业学院', '河南物流职业学院', '河南信息统计职业学院', '河南医学高等专科学校', '河南艺术职业学院', '河南应用技术职业学院', '河南职业技术学院', '河南质量工程职业学院', '鹤壁能源化工职业学院', '鹤壁汽车工程职业学院', '鹤壁职业技术学院', '黄河水利职业技术学院', '济源职业技术学院', '焦作大学', '焦作工贸职业学院', '焦作师范高等专科学校', '开封大学', '开封文化艺术职业学院', '兰考三农职业学院', '林州建筑职业技术学院', '洛阳科技职业学院', '洛阳职业技术学院', '漯河食品职业学院', '漯河医学高等专科学校', '漯河职业技术学院', '南阳科技职业学院', '南阳农业职业学院', '南阳医学高等专科学校', '南阳职业学院', '平顶山工业职业技术学院', '平顶山职业技术学院', '濮阳石油化工职业技术学院', '濮阳医学高等专科学校', '濮阳职业技术学院', '汝州职业技术学院', '三门峡社会管理职业学院', '三门峡职业技术学院', '商丘医学高等专科学校', '商丘职业技术学院', '嵩山少林武术职业学院', '新乡职业技术学院', '信阳航空职业学院', '信阳涉外职业技术学院', '信阳职业技术学院', '许昌电气职业学院', '许昌陶瓷职业学院', '许昌职业技术学院', '永城职业学院', '郑州财税金融职业学院', '郑州城市职业学院', '郑州电力高等专科学校', '郑州电力职业技术学院', '郑州电子商务职业学院', '郑州电子信息职业技术学院', '郑州工业安全职业学院', '郑州轨道工程职业学院', '郑州黄河护理职业学院', '郑州理工职业学院', '郑州旅游职业学院', '郑州商贸旅游职业学院', '郑州澍青医学高等专科学校', '郑州体育职业学院', '郑州铁路职业技术学院', '郑州卫生健康职业学院', '郑州信息工程职业学院', '郑州信息科技职业学院', '郑州亚欧交通职业学院', '郑州幼儿师范高等专科学校', '郑州职业技术学院', '周口职业技术学院', '驻马店幼儿师范高等专科学校', '驻马店职业技术学院', '信阳艺术职业学院', '周口文理职业学院', '洛阳文化旅游职业学院', '郑州城建职业学院', '郑州医药健康职业学院', '铁道警察学院', '郑州大学体育学院', '平顶山文化艺术职业学院']
loginNum:
title: 登录账号
description: 登录账号
type: text
default:
loginPas:
title: 登录密码
description: 登录密码
type: text
password: true
default:
time:
title: 做题时长
description: 用来修改试卷的做题时长
type: number
default: 550
min: 100 # 最小值
max: 590 # 最大值
unit: 秒 # 表示单位
==/UserConfig== */
var schoolName = GM_getValue('UserInfo.schoolName'),
login_num = GM_getValue('UserInfo.loginNum'),
login_pas = GM_getValue('UserInfo.loginPas'),
time = GM_getValue('UserInfo.time');
return new Promise((resolve, reject) => {
if (schoolName == "" || login_num == "" || login_pas == "") {
GM_log('请设置相关登录信息', "error")
GM_notification('国安小助手:请设置相关登录信息');
reject()
}
var array = ['安阳工学院', '安阳师范学院', '安阳学院', '河南财经政法大学', '河南财政金融学院', '河南城建学院', '河南大学', '河南工程学院', '河南工学院', '河南工业大学', '河南警察学院', '河南开封科技传媒学院', '河南科技大学', '河南科技学院', '河南科技学院新科学院', '河南科技职业大学', '河南理工大学', '河南牧业经济学院', '河南农业大学', '河南师范大学', '河南中医药大学', '华北水利水电大学', '黄河交通学院', '黄河科技学院', '黄淮学院', '洛阳理工学院', '洛阳师范学院', '南阳理工学院', '南阳师范学院', '平顶山学院', '商丘工学院', '商丘师范学院', '商丘学院', '新乡学院', '新乡医学院', '新乡医学院三全学院', '信阳农林学院', '信阳师范学院', '信阳学院', '许昌学院', '郑州财经学院', '郑州大学', '郑州工程技术学院', '郑州工商学院', '郑州工业应用技术学院', '郑州航空工业管理学院', '郑州经贸学院', '郑州科技学院', '郑州轻工业大学', '郑州商学院', '郑州升达经贸管理学院', '郑州师范学院', '郑州西亚斯学院', '中原工学院', '中原科技学院', '周口师范学院', '安阳幼儿师范高等专科学校', '安阳职业技术学院', '长垣烹饪职业技术学院', '河南测绘职业学院', '河南地矿职业学院', '河南对外经济贸易职业学院', '河南工业和信息化职业学院', '河南工业贸易职业学院', '河南工业职业技术学院', '河南护理职业学院', '河南机电职业学院', '河南检察职业学院', '河南建筑职业技术学院', '河南交通职业技术学院', '河南经贸职业学院', '河南林业职业学院', '河南农业职业学院', '河南女子职业学院', '河南轻工职业学院', '河南水利与环境职业学院', '河南司法警官职业学院', '河南推拿职业学院', '河南物流职业学院', '河南信息统计职业学院', '河南医学高等专科学校', '河南艺术职业学院', '河南应用技术职业学院', '河南职业技术学院', '河南质量工程职业学院', '鹤壁能源化工职业学院', '鹤壁汽车工程职业学院', '鹤壁职业技术学院', '黄河水利职业技术学院', '济源职业技术学院', '焦作大学', '焦作工贸职业学院', '焦作师范高等专科学校', '开封大学', '开封文化艺术职业学院', '兰考三农职业学院', '林州建筑职业技术学院', '洛阳科技职业学院', '洛阳职业技术学院', '漯河食品职业学院', '漯河医学高等专科学校', '漯河职业技术学院', '南阳科技职业学院', '南阳农业职业学院', '南阳医学高等专科学校', '南阳职业学院', '平顶山工业职业技术学院', '平顶山职业技术学院', '濮阳石油化工职业技术学院', '濮阳医学高等专科学校', '濮阳职业技术学院', '汝州职业技术学院', '三门峡社会管理职业学院', '三门峡职业技术学院', '商丘医学高等专科学校', '商丘职业技术学院', '嵩山少林武术职业学院', '新乡职业技术学院', '信阳航空职业学院', '信阳涉外职业技术学院', '信阳职业技术学院', '许昌电气职业学院', '许昌陶瓷职业学院', '许昌职业技术学院', '永城职业学院', '郑州财税金融职业学院', '郑州城市职业学院', '郑州电力高等专科学校', '郑州电力职业技术学院', '郑州电子商务职业学院', '郑州电子信息职业技术学院', '郑州工业安全职业学院', '郑州轨道工程职业学院', '郑州黄河护理职业学院', '郑州理工职业学院', '郑州旅游职业学院', '郑州商贸旅游职业学院', '郑州澍青医学高等专科学校', '郑州体育职业学院', '郑州铁路职业技术学院', '郑州卫生健康职业学院', '郑州信息工程职业学院', '郑州信息科技职业学院', '郑州亚欧交通职业学院', '郑州幼儿师范高等专科学校', '郑州职业技术学院', '周口职业技术学院', '驻马店幼儿师范高等专科学校', '驻马店职业技术学院', '信阳艺术职业学院', '周口文理职业学院', '洛阳文化旅游职业学院', '郑州城建职业学院', '郑州医药健康职业学院', '铁道警察学院', '郑州大学体育学院', '平顶山文化艺术职业学院'];
var schoolId = array.findIndex((item)=>item === schoolName) + 1
GM_xmlhttpRequest({
method: 'POST',
url: 'http://gjaqzsjs.haedu.cn/Login/auth',
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
'Origin': 'http://gjaqzsjs.haedu.cn/',
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
},
data: 'unit_code=' + encodeURIComponent(schoolId) + '&student_id=' + encodeURIComponent(login_num) + '&password=' + encodeURIComponent(login_pas),
onload: function (xhr) {
var res = JSON.parse(xhr.responseText)
if (res.code == 2000) {
GM_log('登录状态:' + res.msg, "info")
GM_log('欢迎使用,来自' + res.data.unit_char + '的' + res.data.name + '同学')
GM_log('开始检测今日是否答题')
var date = new Date(),
y = date.getFullYear() + '',
m = date.getMonth() + 1 + '',
d = date.getDate() + '',
nowdate = y + (m.length == 1 ? '0' + m : m) + (d.length == 1 ? '0' + d : d);
resolve(nowdate)
} else {
GM_log('登录状态:' + res.msg, "error")
GM_notification('国安小助手:登陆失败');
reject()
}
}
})
}).then(async (nowdate) => {
await new Promise((resolve, reject) => {
GM_xmlhttpRequest({
method: 'POST',
url: 'http://gjaqzsjs.haedu.cn//Answer/getRecord',
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
'Origin': 'http://gjaqzsjs.haedu.cn/',
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"Referer": "http://gjaqzsjs.haedu.cn/gjaq_dati/page/record.html?date=" + nowdate
},
data: 'date=' + encodeURIComponent(nowdate),
onload: function (xhr_1) {
var res = JSON.parse(xhr_1.responseText);
if (res.code == 4421) {
GM_log(res.msg, "info");
GM_log('开始提交答案...', "info");
resolve();
} else {
GM_log('今日已答题', "info");
GM_notification('国安小助手:今日已答题');
reject();
}
}
});
});
var answer = [
{ 'number': 66, 'answer': 'C' },
{ 'number': 329, 'answer': 'D' },
{ 'number': 466, 'answer': 'D' },
{ 'number': 171, 'answer': 'A' },
{ 'number': 414, 'answer': 'A' },
{ 'number': 242, 'answer': 'C' },
{ 'number': 422, 'answer': 'B' },
{ 'number': 529, 'answer': 'ABCD' },
{ 'number': 599, 'answer': 'ABC' },
{ 'number': 654, 'answer': 'ABCD' },
{ 'number': 694, 'answer': 'ABCD' },
{ 'number': 548, 'answer': 'CD' },
{ 'number': 553, 'answer': 'ABD' },
{ 'number': 1020, 'answer': 'B' },
{ 'number': 1046, 'answer': 'A' },
{ 'number': 880, 'answer': 'B' },
{ 'number': 1079, 'answer': 'B' },
{ 'number': 920, 'answer': 'A' },
{ 'number': 830, 'answer': 'B' },
{ 'number': 1049, 'answer': 'A' }
];
return await new Promise((resolve_1, reject_1) => {
GM_xmlhttpRequest({
method: 'POST',
url: 'http://gjaqzsjs.haedu.cn/Answer/submitAnswer',
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
'Origin': 'http://gjaqzsjs.haedu.cn/',
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
},
data: 'answer=' + JSON.stringify(answer) + '&use_time=' + encodeURIComponent(time),
onload: function (xhr_3) {
var res_1 = JSON.parse(xhr_3.responseText);
if (res_1.code == 4600) {
GM_log(res_1.msg + ",请登录网页查看成绩。", "info");
GM_notification('国安小助手:试卷提交成功,请登录网页查看成绩。');
resolve_1();
} else {
GM_log(res_1.msg, "error");
reject_1();
}
}
});
});
})