Greasy Fork

Greasy Fork is available in English.

洛谷名字颜色随机,管理员和作弊者交换

洛谷名字颜色随机!

目前为 2023-04-01 提交的版本,查看 最新版本

// ==UserScript==
// @name         洛谷名字颜色随机,管理员和作弊者交换
// @namespace    http://tampermonkey.net/
// @version      0.1
// @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
// ==/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))
        {nmap.set(name.innerHTML,Math.floor(Math.random()*colors.length))}
    }
    for(let name of arr)
    {
        name.className=colors[nmap.get(name.innerHTML)];
    }
    console.log(nmap)
})();