[分享] 洛谷提交记录方框背景优化拓展(附赠猫猫虫主题)
-
Updated:
2025.03.27 04:35
新增了修改测试点背景模式。可以通过修改background = true
打开。 -
Updated:
2025.03.31 00:37
修复了测试点背景只会显示 Subtask 1 的 BUG。
声明
本插件原作者为 沉石鱼惊旋,请多多支持原作者喵~
效果展示
根据测试点随机
根据评测结果随机
以上所有测试点效果均在 https://www.luogu.com.cn/record/72597888 处查看。
安装
插件 Link : https://www.luogu.com.cn/article/xscqjzbk
请支持原作者喵~
安装后把代码改成下面的就可以了。
// ==UserScript==
// @name 洛谷提交记录显示优化
// @namespace http://tampermonkey.net/
// @version 0.7
// @description 修改提交记录背景
// @author 沉石鱼惊旋
// @match *://www.luogu.com.cn/record/*
// @run-at document-end
// @license MIT
// ==/UserScript==
// 原作者:沉石鱼惊旋
// 原作者帖子:https://www.luogu.com.cn/article/xscqjzbk
// Modified By Kendieer
// Modified Version : 1.1
// 如果想要收到原作者的持续更新就把下面这两行放在上方
// @downloadURL https://update.greasyfork.org/scripts/530997/%E6%B4%9B%E8%B0%B7%E6%8F%90%E4%BA%A4%E8%AE%B0%E5%BD%95%E6%98%BE%E7%A4%BA%E4%BC%98%E5%8C%96.user.js
// @updateURL https://update.greasyfork.org/scripts/530997/%E6%B4%9B%E8%B0%B7%E6%8F%90%E4%BA%A4%E8%AE%B0%E5%BD%95%E6%98%BE%E7%A4%BA%E4%BC%98%E5%8C%96.meta.js
// =========================================================================================
let Mode = 0 // 0:每个测试点随机roll对应测试点的图片; 1:每种状态随机一张对应测试点的图片 2:完全打乱所有图片
let background = true// 是否在测试点背景插入图片
let cap = 0.4// 透明度
// 链接
let ac_links = [
'https://img.picui.cn/free/2025/03/27/67e52cebed059.gif',
'https://img.picui.cn/free/2025/03/27/67e53b8bb170a.gif',
'https://img.picui.cn/free/2025/03/27/67e54271604f0.gif',
'https://img.picui.cn/free/2025/03/27/67e555196172e.gif',
'https://img.picui.cn/free/2025/03/27/67e563429e9ab.gif',
'https://img.picui.cn/free/2025/03/27/67e56a26e1616.gif',
'https://img.picui.cn/free/2025/03/27/67e56e4d95d5f.gif',
'https://img.picui.cn/free/2025/03/27/67e570b4d2380.gif',
'https://img.picui.cn/free/2025/03/27/67e5723af2148.gif',
'https://img.picui.cn/free/2025/03/27/67e5723aefe77.gif'
]
let wa_links = [
'https://img.picui.cn/free/2025/03/27/67e531c9d8504.jpg',
'https://img.picui.cn/free/2025/03/27/67e53b86ba0b9.gif',
'https://img.picui.cn/free/2025/03/27/67e55350e3363.gif',
'https://img.picui.cn/free/2025/03/27/67e554b187083.jpg',
'https://img.picui.cn/free/2025/03/27/67e5635811a7e.gif',
'https://img.picui.cn/free/2025/03/27/67e56a50ba6d8.gif',
'https://img.picui.cn/free/2025/03/27/67e56a50d5501.gif',
'https://img.picui.cn/free/2025/03/27/67e57155d02e6.gif',
'https://img.picui.cn/free/2025/03/27/67e57227004fe.gif',
'https://img.picui.cn/free/2025/03/27/67e5732db0c9f.gif'
]
let tle_links = [
'https://img.picui.cn/free/2025/03/27/67e52e5c67556.gif',
'https://img.picui.cn/free/2025/03/27/67e53b84ef3ce.gif',
'https://img.picui.cn/free/2025/03/27/67e553ce8b9ac.jpg',
'https://img.picui.cn/free/2025/03/27/67e52fb31b149.gif',
'https://img.picui.cn/free/2025/03/27/67e55a82e675f.gif',
'https://img.picui.cn/free/2025/03/27/67e5637530102.gif',
'https://img.picui.cn/free/2025/03/27/67e56a7658392.gif',
'https://img.picui.cn/free/2025/03/27/67e56a7662970.gif'
]
let mle_links = [
'https://img.picui.cn/free/2025/03/27/67e5310159ff0.gif',
'https://img.picui.cn/free/2025/03/27/67e5418fab245.jpg',
'https://img.picui.cn/free/2025/03/27/67e5530521844.gif',
'https://img.picui.cn/free/2025/03/27/67e55414c9faf.gif',
'https://img.picui.cn/free/2025/03/27/67e563ab35e7f.gif',
'https://img.picui.cn/free/2025/03/27/67e56a9501b01.gif',
'https://img.picui.cn/free/2025/03/27/67e57150be707.gif'
]
let re_links = [
'https://img.picui.cn/free/2025/03/27/67e52d70baf01.gif',
'https://img.picui.cn/free/2025/03/27/67e53b86a65a7.gif',
'https://img.picui.cn/free/2025/03/27/67e52fb31b149.gif',
'https://img.picui.cn/free/2025/03/27/67e55dc23ad09.gif',
'https://img.picui.cn/free/2025/03/27/67e530226e2c1.gif',
'https://img.picui.cn/free/2025/03/27/67e563cda8d9b.gif',
'https://img.picui.cn/free/2025/03/27/67e56ab50f85e.gif',
'https://img.picui.cn/free/2025/03/27/67e56e52ac2e6.gif'
]
let ole_links = [
'https://img.picui.cn/free/2025/03/27/67e530f7e9bf4.gif',
'https://img.picui.cn/free/2025/03/27/67e53d063b470.gif',
'https://img.picui.cn/free/2025/03/27/67e563ead764d.gif',
'https://img.picui.cn/free/2025/03/27/67e56ad174729.gif',
'https://img.picui.cn/free/2025/03/27/67e56ad184253.gif'
]
let uke_links = [
'https://img.picui.cn/free/2025/03/27/67e52fb33a99d.gif',
'https://img.picui.cn/free/2025/03/27/67e53b87a189a.gif',
'https://img.picui.cn/free/2025/03/27/67e5532b7ff77.gif',
'https://img.picui.cn/free/2025/03/27/67e56404a460f.jpg',
'https://img.picui.cn/free/2025/03/27/67e56b053b949.gif'
]
let jud_links = [
'https://img.picui.cn/free/2025/03/27/67e530fdbe8ce.gif',
'https://img.picui.cn/free/2025/03/27/67e53b8c4506c.jpg',
'https://img.picui.cn/free/2025/03/27/67e542362313c.jpg',
'https://img.picui.cn/free/2025/03/27/67e533b0d3e8b.gif',
'https://img.picui.cn/free/2025/03/27/67e56b1dd3452.jpg'
]
let bg_links = [
'https://img.picui.cn/free/2025/03/28/67e644c63e451.jpg'
]
let ce_bg_links = [
'https://img.picui.cn/free/2025/03/27/67e52d70baf01.gif',
'https://img.picui.cn/free/2025/03/27/67e53b86a65a7.gif',
'https://img.picui.cn/free/2025/03/27/67e52fb31b149.gif',
'https://img.picui.cn/free/2025/03/27/67e55dc23ad09.gif',
'https://img.picui.cn/free/2025/03/27/67e530226e2c1.gif',
'https://img.picui.cn/free/2025/03/27/67e563cda8d9b.gif',
'https://img.picui.cn/free/2025/03/27/67e56ab50f85e.gif',
'https://img.picui.cn/free/2025/03/27/67e56e52ac2e6.gif'
]
// 各种评测结果的背景颜色
var Judging_color = [20, 85, 143, 0.3]
var AC_Color = [82, 196, 26, 0.3]
var WA_Color = [231, 76, 60, 0.3]
var TLE_Color = [5, 34, 66, 0.3]
var MLE_Color = [5, 34, 66, 0.3]
var RE_Color = [157, 61, 207, 0.3]
var OLE_Color = [5, 34, 66, 0.3]
var UKE_Color = [14, 29, 105, 0.3]
// =========================================================================================
function getRandom(max) {
return Math.floor(Math.random() * max);
}
let indexes
let aclen = ac_links.length
let walen = wa_links.length
let tlelen = tle_links.length
let mlelen = mle_links.length
let relen = re_links.length
let olelen = ole_links.length
let ukelen = uke_links.length
let judlen = jud_links.length
let bglen = bg_links.length
let cebglen = ce_bg_links.length
let ac = getRandom(aclen)
let wa = getRandom(walen)
let tle = getRandom(tlelen)
let mle = getRandom(mlelen)
let re = getRandom(relen)
let ole = getRandom(olelen)
let uke = getRandom(ukelen)
let jud = getRandom(judlen)
let bgd = getRandom(bglen)
let cebgd = getRandom(cebglen)
let all = [...ac_links,...wa_links,...tle_links,...mle_links,...re_links,...ole_links,...uke_links,...jud_links,...ce_bg_links]
let alllen = all.length
function init_index(){
let tc = document.getElementsByClassName('test-case');
let len = tc.length;
indexes = Array(len)
for (let i = 0; i < len; i += 1) {
indexes[i] = getRandom(1000)
}
loaded_size = len
loaded = true
}
var loaded = false,loaded_size = 0
function main() {
let tcw = document.querySelector('.main div.card.padding-default')
let ce = document.querySelector('.compile-info');
let tc = document.getElementsByClassName('test-case');
let len = tc.length;
if (loaded_size != len){
loaded = false
return
}
for (let i = 0; i < len; i += 1) {
if (Mode === 0){
if (tc[i].getElementsByClassName("spinner").length) {
tc[i].style = `background: linear-gradient(rgba(${Judging_color}), rgba(${Judging_color})), url('${jud_links[indexes[i]%judlen]}'); background-size: cover;`;
continue;
}
let status = tc[i].getElementsByClassName('status')[0].innerHTML.substring(0, 2);
if (status === "AC") {
tc[i].style = `background: linear-gradient(rgba(${AC_Color}), rgba(${AC_Color})), url('${ac_links[indexes[i]%aclen]}'); background-size: cover;`;
} else if (status === "WA") {
tc[i].style = `background: linear-gradient(rgba(${WA_Color}), rgba(${WA_Color})), url('${wa_links[indexes[i]%walen]}'); background-size: cover;`;
} else if (status === "TL") {
tc[i].style = `background: linear-gradient(rgba(${TLE_Color}), rgba(${TLE_Color})), url('${tle_links[indexes[i]%tlelen]}'); background-size: cover;`;
} else if (status === "ML") {
tc[i].style = `background: linear-gradient(rgba(${MLE_Color}), rgba(${MLE_Color})), url('${mle_links[indexes[i]%mlelen]}'); background-size: cover;`;
} else if (status === "RE") {
tc[i].style = `background: linear-gradient(rgba(${RE_Color}), rgba(${RE_Color})), url('${re_links[indexes[i]%relen]}'); background-size: cover;`;
} else if (status === "OL") {
tc[i].style = `background: linear-gradient(rgba(${OLE_Color}), rgba(${OLE_Color})), url('${ole_links[indexes[i]%olelen]}'); background-size: cover;`;
} else if (status === "UK") {
tc[i].style = `background: linear-gradient(rgba(${UKE_Color}), rgba(${UKE_Color})), url('${uke_links[indexes[i]%ukelen]}'); background-size: cover;`;
}
} else if (Mode === 1) {
if (tc[i].getElementsByClassName("spinner").length) {
tc[i].style = `background: linear-gradient(rgba(${Judging_color}), rgba(${Judging_color})), url('${jud_links[jud]}'); background-size: cover;`;
continue;
}
let status = tc[i].getElementsByClassName('status')[0].innerHTML.substring(0, 2);
if (status === "AC") {
tc[i].style = `background: linear-gradient(rgba(${AC_Color}), rgba(${AC_Color})), url('${ac_links[ac]}'); background-size: cover;`;
} else if (status === "WA") {
tc[i].style = `background: linear-gradient(rgba(${WA_Color}), rgba(${WA_Color})), url('${wa_links[wa]}'); background-size: cover;`;
} else if (status === "TL") {
tc[i].style = `background: linear-gradient(rgba(${TLE_Color}), rgba(${TLE_Color})), url('${tle_links[tle]}'); background-size: cover;`;
} else if (status === "ML") {
tc[i].style = `background: linear-gradient(rgba(${MLE_Color}), rgba(${MLE_Color})), url('${mle_links[mle]}'); background-size: cover;`;
} else if (status === "RE") {
tc[i].style = `background: linear-gradient(rgba(${RE_Color}), rgba(${RE_Color})), url('${re_links[re]}'); background-size: cover;`;
} else if (status === "OL") {
tc[i].style = `background: linear-gradient(rgba(${OLE_Color}), rgba(${OLE_Color})), url('${ole_links[ole]}'); background-size: cover;`;
} else if (status === "UK") {
tc[i].style = `background: linear-gradient(rgba(${UKE_Color}), rgba(${UKE_Color})), url('${uke_links[uke]}'); background-size: cover;`;
}
} else {
if (tc[i].getElementsByClassName("spinner").length) {
tc[i].style = `background: linear-gradient(rgba(${Judging_color}), rgba(${Judging_color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
continue;
}
let status = tc[i].getElementsByClassName('status')[0].innerHTML.substring(0, 2);
if (status === "AC") {
tc[i].style = `background: linear-gradient(rgba(${AC_Color}), rgba(${AC_Color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
} else if (status === "WA") {
tc[i].style = `background: linear-gradient(rgba(${WA_Color}), rgba(${WA_Color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
} else if (status === "TL") {
tc[i].style = `background: linear-gradient(rgba(${TLE_Color}), rgba(${TLE_Color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
} else if (status === "ML") {
tc[i].style = `background: linear-gradient(rgba(${MLE_Color}), rgba(${MLE_Color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
} else if (status === "RE") {
tc[i].style = `background: linear-gradient(rgba(${RE_Color}), rgba(${RE_Color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
} else if (status === "OL") {
tc[i].style = `background: linear-gradient(rgba(${OLE_Color}), rgba(${OLE_Color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
} else if (status === "UK") {
tc[i].style = `background: linear-gradient(rgba(${UKE_Color}), rgba(${UKE_Color})), url('${all[indexes[i]%alllen]}'); background-size: cover;`;
}
}
}
if (background){
if (ce === null){
if (bglen > 0 ){
tcw.style = `background: url('${bg_links[bgd%bglen]}'); background-size: 100% 100%;opacity: 0.65;min-height:600px`;
}
} else {
if (cebglen > 0){
ce.style = `background: url('${ce_bg_links[cebgd%cebglen]}'); background-size: cover;opacity: 0.65;min-height:800px`;
}
}
}
};
(function () {
setInterval(function () {
if (!loaded)init_index();
else main();
}, 20);
})();
-
如何修改模式
将代码中的
Mode = 0
改成对应模式即可。 -
如果你想修改测试点对应颜色,你可以修改文件中的这部分:(参数分别为
R G B 透明度
)var Judging_color = [20, 85, 143, 0.3] var AC_Color = [82, 196, 26, 0.3] var WA_Color = [231, 76, 60, 0.3] var TLE_Color = [5, 34, 66, 0.3] var MLE_Color = [5, 34, 66, 0.3] var RE_Color = [157, 61, 207, 0.3] var OLE_Color = [5, 34, 66, 0.3] var UKE_Color = [14, 29, 105, 0.3]