轻轻敲醒沉睡的心灵

存个档。我当然知道它们都是引用,但是感觉这么写好爽啊。

总之就是还有什么需要的功能可以考虑线下告诉我(?)

// ==UserScript==
// @name         BECODER Helper
// @namespace    http://tampermonkey.net/
// @version      1.0.4
// @description  Make BECODER easier to use :-(
// @author       XSC062
// @match        https://becoder.com.cn/*
// @match        https://www.becoder.com.cn/*
// @icon         https://www.becoder.com.cn/logo/login_logo.png
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var nowURL = window.location.href;
    var baseURL = window.location.protocol + '//' + nowURL.split('/')[2] + '/';
    // 优化用户未登录页

    if (document.getElementsByClassName('ui negative icon message').length > 0) {
        // <a href="/login?url=%2Fdiscussion%2Fglobal" style="margin-right: 5px; ">登录</a>
    }
    if (nowURL.search('contest') != -1) {
        if (document.URL.search('submission') == -1) {
            // 增加个人提交按钮,查看自己在比赛中所有提交记录
            var lableList = document.getElementsByClassName('ui buttons')[0]; // 这里偷懒了,但经查验没什么问题
            lableList.appendChild(document.createElement('A')).innerHTML = "个人提交";
            lableList.lastElementChild.className = "ui small blue button"; // 问就是我喜欢蓝色
            lableList.lastElementChild.href = document.URL + "/submissions"; // 又偷懒了,因为不会
            // 比赛界面提交链接去除 contest,对权限的适配以后再优化
            var linkElements = document.getElementsByTagName('TR');
            for (var i = 1; i < linkElements.length; ++i) {
                if (linkElements[i].firstElementChild.firstElementChild == null) continue;
                linkElements[i].firstElementChild.firstElementChild.href = linkElements[i].firstElementChild.firstElementChild.href.replaceAll('/contest', '');
            }
        }
        // 比赛提交记录页面点击跳转,超链接颜色不管了,反正蓝的也方便识别
        else if (document.URL.search('submission') > document.URL.search('contest')) {
            var TabelElements = document.getElementsByTagName('TR'); // 大型连续剧之 Tabel
            for (var k = 1; k < TabelElements.length; ++k) {
                var submissionIndex = TabelElements[k].getElementsByTagName('B')[0].innerHTML;
                var nowHref = baseURL + 'submission/' + submissionIndex.substr(1, submissionIndex.length - 1);
                var elementA = TabelElements[k].getElementsByTagName('TD')[0], elementB = TabelElements[k].getElementsByTagName('TD')[2];
                var sonA = TabelElements[k].getElementsByTagName('B')[0], sonB = TabelElements[k].getElementsByTagName('B')[2];
                elementA.appendChild(document.createElement('A')).append(sonA);
                elementB.appendChild(document.createElement('A')).append(sonB);
                elementA.firstElementChild.href = elementB.firstElementChild.href = nowHref;
            }
        }
    }
})();


  • 20240216 v1.0.1:增加了个人提交按钮。感谢这个页面还在。
  • 20240225 v1.0.2:为了 @liuzimingc 专门适配了一下 becoder.com.cn 域名 😄
  • 20240406 v1.0.3:修了比赛全局提交 <a> 标签冲突的 bug
  • 202407xx v1.0.4:1024 你怎么似了我的 1024 😢
posted @ 2024-02-15 19:36  XSC062  阅读(56)  评论(6编辑  收藏  举报