// ==UserScript==
// @name 彩色AC
// @name:en Colorful AC
// @description 一些编程网站的 AC 记录都会变成彩色!
// @description:en Some computer programming website's AC are in color!
// @author 123asdf123(洛谷576074)
// @license SATA
// @icon https://asdf123asdf123asdf123.github.io/sample.gif
// @version 4.2.10.7
// @match *://*.bashu.com.cn/*
// @match *://www.luogu.com.cn/record/*
// @match *://www.luogu.com.cn/problem/*
// @match *://*.codeforces.com/*
// @match *://*.codeforc.es/*
// @match *://*.vjudge.net/*
// @match *://*.atcoder.jp/*
// @match *://acm.hdu.edu.cn/*
// @match *://*.loj.ac/*
// @match *://*.spoj.com/*
// @match *://uoj.ac/*
// @match *://119.27.163.117/*
// @match *://hydro.ac/*
// @match *://acm.sdut.edu.cn/onlinejudge3/solutions/*
// @match *://poj.org/*
// @namespace https://greasyfork.org/users/1265383
// @downloadURL https://update.greasyfork.cloud/scripts/488015/%E5%BD%A9%E8%89%B2AC.user.js
// @updateURL https://update.greasyfork.cloud/scripts/488015/%E5%BD%A9%E8%89%B2AC.meta.js
// ==/UserScript==
let c=Math.round(Math.random()*360);
function hsvToRgb(x) {
var h = x, s = 100, v =100;
s = s / 100;
v = v / 100;
var r = 0, g = 0, b = 0;
var i = parseInt((h / 60) % 6);
var f = h / 60 - i;
var p = v * (1 - s);
var q = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
switch (i) {
case 0:
r = v; g = t; b = p;
break;
case 1:
r = q; g = v; b = p;
break;
case 2:
r = p; g = v; b = t;
break;
case 3:
r = p; g = q; b = v;
break;
case 4:
r = t; g = p; b = v;
break;
case 5:
r = v; g = p; b = q;
break;
default:
break;
}
r = parseInt(r * 255.0)
g = parseInt(g * 255.0)
b = parseInt(b * 255.0)
return [r, g, b];
}
var front=[],afront=[],back=[],nb=[];
function get(now){
if(now.innerHTML=='AC'&&now.className=="status")
if(back.includes(now.parentNode)==false)
back.push(now.parentNode);
if(now.innerHTML=='Correct')
if(back.includes(now.parentNode)==false)
back.push(now.parentNode);
if(now.innerHTML=='\n Accepted\n ')
if(front.includes(now)==false){
front.push(now);
if(now.parentNode.parentNode.parentNode.children.length>=4)
if(front.includes(now.parentNode.parentNode.parentNode.children[2].children[1].children[0].children[0])==false)
front.push(now.parentNode.parentNode.parentNode.children[2].children[1].children[0].children[0]);
}
if(now.innerHTML=='\n Accepted\n')
if(back.includes(now)==false){
back.push(now);
if(now.parentNode.children.length>=2)
if(front.includes(now.parentNode.children[1])==false)
front.push(now.parentNode.children[1]);
}
if(now.innerHTML==' Congratulation !')
if(back.includes(now)==false)
back.push(now);
if(now.innerHTML==' Submit'){
if(back.includes(now)==false)
back.push(now);
if(nb.includes(now)==false)
nb.push(now);
}
if(now.innerHTML=='Accepted'&&now.className=="label label-success")
if(back.includes(now)==false)
back.push(now);
if(now.innerHTML=='AC'&&now.className=="label label-success")
if(back.includes(now)==false)
back.push(now);
if(now.innerHTML=='Accepted'&&now.className=="lcolor--green-3")
if(front.includes(now)==false)
front.push(now);
if(now.innerHTML=='Accepted'&&now.className=="accepted")
if(front.includes(now)==false)
front.push(now);
if(now.innerHTML=='Accepted'&&now.className=="status")
if(front.includes(now)==false)
front.push(now);
if(now.innerHTML==' Accepted'&&now.className=="view-solution")
if(front.includes(now)==false)
front.push(now);
if(now.innerHTML=='Accepted'&&now.tagName=="FONT")
if(front.includes(now)==false)
front.push(now);
if(now.className=="verdict-accepted")
if(front.includes(now)==false)
front.push(now);
if(typeof now.className=="string"&&now.className.includes("record-status--text pass")){
if(front.includes(now)==false)
front.push(now);
if(now.children.length>=1&&front.includes(now.children[0])==false)
front.push(now.children[0]);
if(now.previousElementSibling!=null&&now.previousElementSibling.style.color=="rgb(37, 173, 64)")
if(afront.includes(now.previousElementSibling)==false)
afront.push(now.previousElementSibling);
}
if(now.innerHTML=='\n AC\n')
if(back.includes(now)==false)
back.push(now);
if(now.className=="result bg-green cursor-pointer")
if(back.includes(now)==false)
back.push(now);
if(now.className=="text-white bg-green")
if(back.includes(now)==false)
back.push(now);
if(now.style.color=="rgb(0, 204, 0)")
if(afront.includes(now)==false)
afront.push(now);
var x=now.children;
for(var i=0;i {
let a = setInterval(() =>{
front=[];
back=[];
getac("status-link color-none");
getac("res-good");
getac("label label-success");
getac("gradient-green center");
getac("status");
getac("info-rows");
getac("l-flex-info-row");
getac("verdict-accepted");
getac("record-status--text pass");
getac("accepted");
getac("btn btn-success");
getac("view-solution");
getac("result-bar");
getac("ant-col-xs-12 ant-col-md-4");
getac("uoj-status");
getac("uoj-score");
getuojac("panel panel-uoj-accepted");
gethduac();
getallac("statuscolor _Accepted_127b4_43");
getallac("_score_10_1lqan_31");
var x;
x=document.getElementsByClassName("kol3 ");
for(let i=0;i