SCAU OJ提交倒计时显示工具

适用于:SCAU华南农业大学OJ平台; 使用说明:OJ平台有提交频率限制(60s一次),但提交后看不到剩余秒数;在某种情况下需要连续提交时,若在60s内再次提交会被打回,导致时间浪费,通过该插件可以显示剩余的时间。

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         SCAU OJ提交倒计时显示工具
// @namespace    YelloooBlue_SCAU_OJ_TimerTool
// @version      0.3
// @description  适用于:SCAU华南农业大学OJ平台;   使用说明:OJ平台有提交频率限制(60s一次),但提交后看不到剩余秒数;在某种情况下需要连续提交时,若在60s内再次提交会被打回,导致时间浪费,通过该插件可以显示剩余的时间。
// @author       YelloooBlue
// @match        *://172.26.14.60:8000/uoj/mainMenu.html
// @match        *://acm.scau.edu.cn:8000/uoj/mainMenu.html
// @grant
// ==/UserScript==


var timeS = 60;//倒计时时间,可修改


//初始化div
var div = document.createElement("div");
div.style.cssText = "top: 15px;background: #044599;color:#ffffff;overflow: hidden;z-index: 99999999;margin:10px;text-align:center;width: 250px;height: 50px;";
div.title = "插件制作:Copyright©YelloooBlue\n 联系方式:[email protected]";
$("#top").append(div);


(function () {
    'use strict';
    var flag = 0; //0为正在检测提交界面  1为当前处于提交界面  2为正在倒计时
    setDivContent("<p>初始化完成 - 等待切换到提交页面</p>");

    function ready(form) {

        div.style.backgroundColor = "green"
        setDivContent("<p>可提交 - 准备就绪</p>");

        form.submit(function (e) {
            flag =2;
            div.style.backgroundColor = "OrangeRed"

            var sec=timeS;
            //计时函数
            var timer = setInterval(function () {
                sec--;

                setDivContent("<p>不可提交 - 剩余秒数:" + sec + "</p>");

                //倒计时结束
                if (!sec) {

                    div.style.backgroundColor = "#044599"
                    setDivContent("<p>可提交 - 等待切换到提交页面</p>");


                    sec = timeS;
                    flag = 0;
                    clearInterval(timer);
                }
            }, 1000);
        })
    }

    function setDivContent(content) {
        div.innerHTML = "<p>OJ 提交倒计时显示插件</p>" + content;
    }


    //检测提交页面
    setInterval(function () {
        var form = $('#rightMain').contents().find("iframe").contents().find('#form1');//提交表单
        var formT = $('#rightMain').contents().find('#form1');//考试表单

        if (form.length) {
            if(flag==0){
                flag = 1;
                ready(form);
            }
        }
        else if (formT.length) {
            if(flag==0){
                flag = 1;
                ready(formT);
            }
        }
        else{
            if(flag==1){
                flag=0;
                div.style.backgroundColor = "#044599"
                setDivContent("<p>可提交 - 等待切换到提交页面</p>");
            }
        }

    }, 1000);
}
)();