GeoGuessr Quick Map

Instant Map opening when hovering over it

  1. // ==UserScript==
  2. // @name GeoGuessr Quick Map
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1.1
  5. // @description Instant Map opening when hovering over it
  6. // @author kaya
  7. // @match https://www.geoguessr.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. let activeClass;
  12.  
  13. function main1() {
  14. new MutationObserver(() => {
  15. const guessMap = document.querySelector(
  16. "[data-qa='guess-map']:not([data-skip])",
  17. );
  18.  
  19. if (!guessMap) return;
  20.  
  21. guessMap.setAttribute("data-skip", "");
  22.  
  23. guessMap.addEventListener("mouseenter", () => {
  24. if (activeClass && !isPinned()) {
  25. guessMap.classList.add(activeClass);
  26. playWhooshSound();
  27. }
  28. });
  29.  
  30. guessMap.addEventListener("mouseleave", () => {
  31. activeClass = guessMap.classList.item(guessMap.classList.length - 1);
  32. if (!isPinned()) {
  33. guessMap.classList.remove(activeClass);
  34. playWhooshSound();
  35. }
  36. });
  37. }).observe(document.body, { childList: true, subtree: true });
  38. }
  39.  
  40. function isPinned() {
  41. const pinButton = document.querySelector(
  42. "[data-qa='guess-map__control--sticky-active']",
  43. );
  44.  
  45. let pinned;
  46.  
  47. if (pinButton) {
  48. pinButton.classList.forEach((cls) => {
  49. if (cls.includes("Active")) {
  50. pinned = true;
  51. }
  52. });
  53. }
  54.  
  55. return pinned;
  56. }
  57.  
  58. main1();