// ==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) })();