// ==UserScript==
// @name 洛谷名字颜色随机,管理员和作弊者交换
// @namespace http://tampermonkey.net/
// @version 0.4
// @description 洛谷名字颜色随机!
// @author LincW
// @match https://www.luogu.com.cn/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=luogu.com.cn
// @grant none
// @license GNU GPLv3
// @downloadURL none
// ==/UserScript==
(function() {
let purple="lg-fg-purple lg-bold";
let red="lg-fg-red lg-bold";
let orange="lg-fg-orange lg-bold";
let green="lg-fg-green";
let blue="lg-fg-bluelight";
let gray="lg-fg-gray";
let brown="lg-fg-brown lg-bold";
let colors=[purple,red,orange,green,blue,gray,brown];
let purplebadge="am-badge am-radius lg-bg-purple";
let brownbadge="am-badge am-radius lg-bg-brown";
let stpb=[...document.getElementsByClassName(purplebadge)]
let stbb=[...document.getElementsByClassName(brownbadge)]
let stp=[...document.getElementsByClassName(purple)]
let stb=[...document.getElementsByClassName(brown)]
for(let pbadge of stpb)
{
pbadge.className=brownbadge;
pbadge.innerHTML="作弊者";
}
for(let bbadge of stbb)
{
//console.log(bbadge)
bbadge.className=purplebadge;
bbadge.innerHTML="管理员";
}
for(let pname of stp)
{
pname.className=brown;
}
for(let bname of stb)
{
bname.className=purple;
}
let reds=document.getElementsByClassName(red);
let oranges=document.getElementsByClassName(orange);
let greens=document.getElementsByClassName(green);
let blues=document.getElementsByClassName(blue);
let grays=document.getElementsByClassName(gray);
let nmap=new Map();
let arr=[...reds,...oranges,...greens,...blues,...grays];
for(let name of arr)
{
if(!nmap.has(name.innerHTML))
{
if(name.innerHTML=="LincW") nmap.set(name.innerHTML,0)
else nmap.set(name.innerHTML,Math.floor(Math.random()*colors.length))
}
}
for(let name of arr)
{
if(name.children.length>=1) continue;
if(name.innerHTML=="未开始") continue;
if(name.innerHTML=="进行中") continue;
name.className=colors[nmap.get(name.innerHTML)];
if(nmap.get(name.innerHTML)==colors.length-1)
{
let appr=name.parentNode.innerHTML.indexOf("")+4;
let gz=name.parentNode.innerHTML.match("");
if(gz)
{
appr=name.parentNode.innerHTML.indexOf("",appr)+4;
}
name.parentNode.innerHTML=name.parentNode.innerHTML.slice(0,appr)+" 作弊者"+name.parentNode.innerHTML.slice(appr);
}
if(nmap.get(name.innerHTML)==0)
{
let appr=name.parentNode.innerHTML.indexOf("")+4;
let gz=name.parentNode.innerHTML.match("");
if(gz)
{
appr=name.parentNode.innerHTML.indexOf("",appr)+4;
}
if(name.innerHTML=="LincW") name.parentNode.innerHTML=name.parentNode.innerHTML.slice(0,appr)+" 脚本作者"+name.parentNode.innerHTML.slice(appr);
else name.parentNode.innerHTML=name.parentNode.innerHTML.slice(0,appr)+" 管理员"+name.parentNode.innerHTML.slice(appr);
}
}
console.log(nmap)
})();