MouseHunt - Poweruser QoL scripts

dabbling into scripting to solve little pet peeves

Mint 2022.05.11.. Lásd a legutóbbi verzió

// ==UserScript==
// @name         MouseHunt - Poweruser QoL scripts
// @namespace    https://greasyfork.org/en/users/900615-personalpalimpsest
// @version      0.4
// @description  dabbling into scripting to solve little pet peeves
// @author       asterios
// @match        http://www.mousehuntgame.com/*
// @match        https://www.mousehuntgame.com/*
// @grant        none
// ==/UserScript==

// Friend per region summary view
(() => {
    var xhr = new XMLHttpRequest();
    xhr.open(
        "POST", `https://www.mousehuntgame.com/managers/ajax/pages/page.php?page_class=Travel&uh=7G7AmPV2`);
    xhr.onload = function () {
        var friends = JSON.parse(xhr.responseText).page.tabs[0].regions;
        var masterArr = [];
        var user_region = '';
        //console.log(user.environment_name);
        for (var reg in friends) {
            var regObj = {};
            regObj.type = friends[reg].type;
            regObj.name = friends[reg].name;
            regObj.frdCt = friends[reg].num_friends;
            for (var loc in friends[reg].environments) {
                    if (friends[reg].environments[loc].name == user.environment_name) {
                        //console.log(friends[reg].environments[loc].name);
                        //console.log(user.environment_name);
                        //console.log(regObj.name);
                        user_region = regObj.name;
                    }
                }
             
            masterArr.push(regObj);
            //console.log(regObj);
        }
        //console.log(user_region);
        masterArr.sort((a, b) => b.frdCt - a.frdCt);   
        
        function makeList() {
            var ol = document.createElement('ol');
            ol.id = "ol";
            ol.style.display = "grid";
            ol.style.gridTemplateColumns = "1fr 1fr";
            ol.style.textAlign = "center";
            //console.log('Hello');
            //console.log(masterArr);
            document.querySelector('.campPage-trap-friendContainer').insertBefore(ol, document.querySelector('.campPage-trap-friendList'));

            masterArr.forEach(function (reg) {
                let li1 = document.createElement('li');
                li1.innerHTML += reg.name;
                if (reg.frdCt <= 10) li1.style.color = "rgba(69,69,69,0.420)";
                if (reg.name == user_region) li1.style.color = "rgb(255,0,0)";
                ol.appendChild(li1);

                let li2 = document.createElement('li');
                li2.innerHTML += reg.frdCt;
                if (reg.frdCt <= 10) li2.style.color = "rgba(69,69,69,0.420)";
                if (reg.name == user_region) li2.style.color = "rgb(255,0,0)";
                ol.appendChild(li2);
            });
        }
        var frdSum = document.createElement("button");
        frdSum.innerHTML = "Show #Friends/Region";
        frdSum.style.marginLeft = "5px";
        frdSum.style.padding = "0px 3px";
        frdSum.style.fontSize = "inherit";
        frdSum.addEventListener("click", function () {
            if (document.querySelector('#ol')) {
                document.querySelector('#ol').remove();
            } else {
                makeList();
            }
        });
        document.querySelector(".campPage-trap-friendContainer .label").insertBefore(frdSum, document.querySelector(".campPage-trap-friendContainer-toggleFriendsButton"))
        //temporary fix to move button to sidebar document.querySelector(".pageSidebarView").appendChild(frdSum)
    };
    xhr.send();
})();