GeoGuessr is User Banned

Show whether a player is banned or not on their profile page

// ==UserScript==
// @name         GeoGuessr is User Banned
// @namespace    http://tampermonkey.net/
// @version      0.0.1
// @description  Show whether a player is banned or not on their profile page
// @author       sp4ghet
// @match        https://www.geoguessr.com/user/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=geoguessr.com
// @grant        none
// @license      MIT
// @namespace    https://gf.qytechs.cn/en/users/1273557-sp4ghet
// ==/UserScript==

function checkURL() {
    if (location.pathname.includes("/user") || location.pathname.includes("/me/profile")) return 1;
    return 0;
}

function insertAfter(newNode, existingNode) {
    existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling);
}

async function checkUser(profileId) {
    return fetch(location.origin + "/api/v3/users/" + profileId)
    .then(out => out.json())
    .catch(err => {console.log(err); return null;});
}

let observer = new MutationObserver((mutations) => {
    if (checkURL() == 1) {
        const profileLink = (location.pathname.includes("/me/profile")) ? document.querySelector('[name="copy-link"]').value : location.href;
        const profileId = profileLink.substr(profileLink.lastIndexOf("/")+1);
        checkUser(profileId).then(user => {
            if(user.isBanned === false){
                return;
            }
            if (document.getElementById("isBanned") == null) {
                let proDiv = document.querySelector("[class*='profile-header_proBadgeWrapper__']");
                let baseDiv = (proDiv) ? proDiv.firstChild : document.querySelector("[data-qa='user-card-title']");
                let bannedDiv = document.createElement("div");
                bannedDiv.innerHTML = `<div id="isBanned"></div>`;
                if (proDiv) {
                    baseDiv.style = "display: inline-block; margin-right: 10px";
                    bannedDiv.style.display = "inline-block";
                }
                insertAfter(bannedDiv, baseDiv);
                document.getElementById("isBanned").innerText = `User is banned.`;
            }
        });
    }
})

observer.observe(document.body, {subtree: true, childList: true});

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址