// ==UserScript== // @name 彩色AC // @name:en Colorful AC // @description BSOJ和洛谷的AC都是彩色! // @description:en Bashu Online Judge and Luogu's AC are in color! // @author 123asdf123(洛谷576074) // @license SATA+GPL3.0 // @icon https://asdf123asdf123asdf123.github.io/sample.gif // @version 3.5 // @match *://oj.bashu.com.cn/* // @match *://www.luogu.com.cn/record/* // @match *://www.luogu.com.cn/problem/* // @exclude *://www.luogu.com.cn/problem/solution/* // @namespace https://greasyfork.org/users/1265383 // @downloadURL none // ==/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 = []; var back = []; 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=='Accepted'&&now.className=="label label-success"){ if(back.includes(now)==false){ back.push(now); } } if(now.innerHTML=='\n AC\n'){ if(back.includes(now)==false){ back.push(now); } } var x=now.children; for(var i=0;i { let a = setInterval(() =>{ c++; if(c==360){ c=0; } cnt++; if(cnt==100){ get(document); cnt=0; } rep(); },5) })();