脚本已归档
该脚本已经被作者归档,脚本可能失效并且作者不再维护,你无法再进行问题反馈。
// ==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();
}
}
});
});
})