轻轻敲醒沉睡的心灵
存个档。我当然知道它们都是引用,但是感觉这么写好爽啊。
总之就是还有什么需要的功能可以考虑线下告诉我(?)
// ==UserScript==
// @name BECODER Helper
// @namespace http://tampermonkey.net/
// @version 1.0.7
// @description Make BECODER easier to use :-(
// @author XSC062
// @match https://becoder.com.cn/*
// @match https://www.becoder.com.cn/*
// @match http://222.180.160.110:61234/*
// @match http://222.180.160.110:61235/*
// @icon http://222.180.160.110:61235/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>
}
/* 修复过时 pdf + 去水印(暂时不会写,这玩意儿为啥 cross-origin 了啊???) */
Array.from(document.getElementsByTagName("IFRAME")).forEach((i) => {
i.src = i.src.replace(/https:\/\/www.becoder.com.cn\//g, baseURL);
i.src = i.src.replace(/https:\/\/becoder.com.cn\//g, baseURL);
i.src = i.src.replace(/http:\/\/222.180.160.110\:1024\//g, baseURL);
i.src = i.src.replace(/http:\/\/222.180.160.110\:61234\//g, baseURL);
i.src = i.src.replace(/http:\/\/222.180.160.110\:61235\//g, baseURL);
Array.from(i.contentWindow.document.getElementsByClassName('cover')).forEach((p) => { p.style="visible: false;"; });
});
if (nowURL.search('contest') != -1) {
if (document.URL.search(/contest\/[0-9]+$/) != -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,对权限的适配以后再优化
Array.from(document.getElementsByTagName('TR')).forEach((i) => {
if (i.firstElementChild.firstElementChild == null) {
return;
}
i.firstElementChild.firstElementChild.href = i.firstElementChild.firstElementChild.href.replaceAll('/contest', '');
});
}
// 比赛提交记录页面点击跳转,超链接颜色不管了,反正蓝的也方便识别
else if (document.URL.search('submission') > document.URL.search('contest')) {
Array.from(document.getElementsByTagName('TR')).forEach((k, id) => {
if (id == 0) {
return;
}
var submissionIndex = k.getElementsByTagName('B')[0].innerHTML;
var nowHref = baseURL + 'submission/' + submissionIndex.substr(1, submissionIndex.length - 1);
var elementA = k.getElementsByTagName('TD')[0], elementB = k.getElementsByTagName('TD')[2];
var sonA = k.getElementsByTagName('B')[0], sonB = 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。 - 20241008 v1.0.4:加了修复远古 pdf 的功能,修了点屎山。
- 20241018 v1.0.5:加了修复并不远古 pdf 的功能。
- 20241029 v1.0.6:适配了 61235。
—— · EOF · ——
真的什么也不剩啦 😖