vjudge+

啥都没优化,就是让vjudge变得更好看了

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

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

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name         vjudge+
// @namespace    https://github.com/dffxd-suntra/vjudge-plus
// @version      1.4
// @description  啥都没优化,就是让vjudge变得更好看了
// @author       Suntra
// @homepageURL  https://github.com/dffxd-suntra/vjudge-plus
// @supportURL   https://github.com/dffxd-suntra/vjudge-plus
// @match        https://vjudge.net
// @match        https://vjudge.net/*
// @icon         data:image/x-icon;base64,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
// @require      https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js
// @run-at       document-body
// @license      MIT
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    // 对于-1,有两种情况,一种是404,一种是主页
    var regList = [
        // 0 题目列表
        /\/problem$/,
        // 1 题目详情
        /\/problem\/[^\/]+$/,
        // 2 跳转到原oj的原题
        /\/problem\/[^\/]+\/origin$/,
        // 3 题目详情的iframe
        /\/problem\/description\/[^\/]+$/,


        // 4 提交状态列表
        /\/status$/,
        // 5 跳转到原oj这次提交的页面
        /\/solution\/[^\/]+\/origin$/,
        // 6 如果打开分享文字(Share text)的页面
        /\/solution\/[^\/]+\/[^\/]+$/,


        // 7 赛事列表
        /\/contest$/,
        // 8 赛事详情
        /\/contest\/[^\/]+$/,
        // 9 好像是赛事统计(不知道怎么用)
        /\/contest\/statistic$/,


        // 10 题单列表
        /\/workbook$/,
        // 11 创建题单,创建讨论
        /\/article\/create$/,
        // 12 题单详情
        /\/article\/[^\/]+$/,


        // 13 用户列表
        /\/user$/,
        // 14 用户详情
        /\/user\/[^\/]+$/,


        // 15 小组列表
        /\/group$/,
        // 16 小组详情
        /\/group\/[^\/]+$/,


        // 17 社区(论坛)
        /\/comment$/,


        // 18 发消息(如果要发消息就要先找到它的用户界面,就是14,然后点击信封图标就可
        /\/message$/,
    ];

    function getPage() {
        for(var key in regList) {
            if(regList[key].test(pathName)) {
                return key;
            }
        }
        return -1;
    }

    var pathName = location.pathname;
    while(pathName[pathName.length-1] == "/") {
        pathName = pathName.substr(0,pathName.length-1);
    }
    var pageId = getPage();
    
    // 特判404
    if(pageId == -1&&pathName!="") {
        console.log("404");
    }
    else {
        console.log(pageId);
    }

    if(pageId==-1) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==0) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }if(pageId==1) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==2) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==3) {
        GM_addStyle(
            "dd {background-color: rgba(255,255,255,70%) !important;border-radius: 0.25rem !important;}"
        );
    }
    if(pageId==4) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==5) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==6) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==7) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==8) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==9) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==10) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==11) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==12) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==13) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==14) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==15) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==16) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==17) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }
    if(pageId==18) {
        GM_addStyle("body {background: #f0f0f0 url(http://static.rqnoj.cn/images/bg.jpg) no-repeat center top fixed;background-size: 100% 100%;-moz-background-size: 100% 100%;}");
        $("body").prepend("<nav style='height: 60px'></nav>");
    }

    // 对于所有页面
    GM_addStyle(
        ".navbar {border-radius:0rem;background-color: rgba(0,0,0,65%) !important;position: fixed;top: 0;left: 0;z-index: 1000;width: 100%;}"+
        "::-webkit-scrollbar {display: none;}"+
        "#prob-ads {display: none;}"+
        "#img-support {display: none;}"+
        ".card, .list-group-item, .btn-secondary, .page-link, .page-item.disabled .page-link, .dropdown-menu {background-color: rgba(255,255,255,65%);}"+
        ".modal-content {background-color: rgba(255,255,255,90%);}"+
        ".form-control {background-color: rgba(255,255,255,50%);}"+
        ".tab-content {background-color: rgba(255,255,255,50%);border: 2px solid #eceeef;border-radius: 0.25rem;padding: 20px;}"
    );
    $("body > div.body-footer").append("<p>Theme powered by <a href=\"https://github.com/dffxd-suntra/vjudge-plus\">vjudge+</a></p>");
})();