ysu校园网定时重连

自动断线重连校园网

当前为 2022-05-06 提交的版本,查看 最新版本

// ==UserScript==
// @name         ysu校园网定时重连
// @namespace    authysu
// @version      0.0.1
// @description  自动断线重连校园网
// @author       任zc
// @match        *://auth.ysu.edu.cn/*
// @match        *://10.11.0.1/*
// @grant        unsafeWindow
// ==/UserScript==

//刷新页面,似乎没必要
//location.reload();

//劫持confirm
unsafeWindow.confirm = function(){return 1};
window.confirm = function(){return 1};
Window.prototype.confirm = function(){return 1};
function redir(){
    window.location.href="http://10.11.0.1"
}
function checkweb(ms){
    if(!document.querySelector("#toLogOut") && !document.querySelector("#offlineDiv")){
        setTimeout(redir, ms) //两者皆非就隔段时间重连
    }else if(document.querySelector("#toLogOut")){
        return 1
    }else{
        return 0
    }
}
function logout(){
    if(!document.querySelector("#toLogOut")){
        //没有找到注销,不再执行后续代码
        return;
    }
    document.querySelector("#toLogOut").click();
}
function relogin(){
    if(!document.querySelector("#offlineDiv")){
        //没找到重登
        return;
    }
    document.querySelector("#offlineDiv").click();
}

//设置重连的时间
var uh = 4
var um = 0
var us = 0

var myDate = new Date();

function calctimespan(myDate){
    var hnow = myDate.getHours();
    var mnow = myDate.getMinutes();
    var snow = myDate.getSeconds();
    var hspan = (uh - hnow + 24) % 24
    var mspan = um - mnow
    var sspan = us - snow
    var timespan = (60*60*hspan + 60*mspan + sspan)*1000
    return timespan
}

var timespan = calctimespan(myDate)

checkweb(60000)
setTimeout(logout, timespan);
//注销5秒后重连
setTimeout(relogin, 5000)

setTimeout(redir, 60000) //假如一分钟都没连上,重定向