HDU自动登录(不可用)

自动登录(不可用)HDUOJ

目前為 2017-10-31 提交的版本,檢視 最新版本

// ==UserScript==
// @name         HDU自动登录(不可用)
// @namespace    YinTianliang_i
// @version      0.1.1
// @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!');
        }
    }).fail(() => { alert('登录(不可用)失败,建议清空cookie重新尝试'); });
}


//如果跳转到了登录(不可用)界面,则开始执行逻辑
//提取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!');
        }
    }).fail(() => { alert('登录(不可用)失败,建议清空cookie重新尝试'); });


    //单项测试登录(不可用)
    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];

}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址