自动登录HDUOJ
当前为
// ==UserScript==
// @name HDU自动登录
// @namespace YinTianliang_i
// @version 0.1.2
// @description 自动登录HDUOJ
// @author Yin Tianliang
// @include *//hdu.hustoj.com/*
// @include *//acm.hdu.edu.cn/*
// @include *//acm.split.hdu.edu.cn/*
// @require https://code.jquery.com/jquery-3.2.1.min.js
// @grant none
// @run-at document-start
// ==/UserScript==
//alert('YES');
//console.log(window.location.toString())
//TODO:判断当前登录状态
function getCookie(cookiename) {
var reg = new RegExp("(^| )" + cookiename + "=([^;]*)(;|$)");
var arr = document.cookie.match(reg);
if (arr) {
return unescape(arr[2]);
} else {
return null;
}
}
function setUserInfo() {
username = prompt("请输入用户名:");
userpass = prompt("请输入密码:");
document.cookie = "username=" + escape(username) + "; expires=Thu, 18 Dec 2333 12:00:00 GMT";
document.cookie = "userpass=" + escape(userpass) + "; expires=Thu, 18 Dec 2333 12:00:00 GMT";
}
function contestLogin(contestID, contestPSW) {
$.ajax({
type: "post",
url: "http://" + window.location.host + "/diy/contest_login.php?cid=" + contestID + "&action=login",
data: {
Origin: "http://" + window.location.host,
Referer: "http://" + window.location.host,
password: contestPSW
},
success: function () {
//alert('Login Success!');
}
});
}
//如果跳转到了登录界面,则开始执行逻辑
//提取url中的contestID 判断是否在cookie中
var reg = new RegExp("diy/contest_login.php.cid=(\\d+)");
var arr = window.location.toString().match(reg);
if (arr) {
//用户登录
var username = getCookie("username");
var userpass = getCookie("userpass");
var contestID = getCookie("contestID");
var contestPSW = getCookie("contestPSW");
if (username === null || userpass === null) {
setUserInfo();
}
$.ajax({
type: "post",
url: "http://" + window.location.host + "/userloginex.php?action=login",
data: {
Origin: "http://" + window.location.host,
Referer: "http://" + window.location.host,
username: username,
userpass: userpass,
login: "Sign In"
},
success: function () {
//alert('Login Success!');
}
});
//单项测试登录
if (!new RegExp(arr[1]).test(contestID)) {
var psw = prompt("该测试的口令未被记录,请输入该测试的口令");
contestID += '|' + arr[1];
contestPSW += '|' + psw;
document.cookie = "contestID=" + contestID + "; expires=Thu, 18 Dec 2333 12:00:00 GMT";
document.cookie = "contestPSW=" + contestPSW + "; expires=Thu, 18 Dec 2333 12:00:00 GMT";
}
contestID = contestID.split('|');
contestPSW = contestPSW.split('|');
for (var i = 0; i < contestID.length; i++) {
contestLogin(contestID[i], contestPSW[i]);
}
//跳转到题目页面
window.location.href = "http://" + window.location.host + '/diy/contest_show.php?cid=' + arr[1];
}