Greasy Fork

MouseHunt - Poweruser QoL scripts

dabbling into scripting to solve little pet peeves

目前为 2022-04-11 提交的版本。查看 最新版本

// ==UserScript==
// @name         MouseHunt - Poweruser QoL scripts
// @namespace    https://greasyfork.org/en/users/900615-personalpalimpsest
// @version      0.3
// @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 location summary view
(() => {
    var xhr = new XMLHttpRequest();
    xhr.open(
        "POST", `https://www.mousehuntgame.com/managers/ajax/users/getfriendsonline.php`);
    xhr.onload = function () {
        var friends = JSON.parse(xhr.responseText).friends_data;
        var masterArr = [];
        for (var loc in friends) {
            var locObj = {};
            locObj.type = loc;
            locObj.name = friends[loc].name;
            locObj.frdCt = friends[loc].numInLocation;
            masterArr.push(locObj);
        }
        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";

            document.querySelector('.campPage-trap-friendContainer').insertBefore(ol, document.querySelector('.campPage-trap-friendList'));

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

                let li2 = document.createElement('li');
                li2.innerHTML += loc.frdCt;
                if (loc.frdCt <= 2) li2.style.color = "rgba(69,69,69,0.420)";
                if (loc.name == user.environment_name) li2.style.color = "rgb(255,0,0)";
                ol.appendChild(li2);
            });
        }
        var frdSum = document.createElement("button");
        frdSum.innerHTML = "Show #Friends/Loc";
        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();
})();