SubSymmetry

Country Streak Counter (Manual, Enabled on Challenges)

Jul 15th, 2020 (edited)
690
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.09 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Country Streak Counter (Manual, Enabled on Challenges)
  3. // @include /^(https?)?(\:)?(\/\/)?([^\/]*\.)?geoguessr\.com($|\/.*)/
  4. // @description Adds a country streak counter to the GeoGuessr website
  5. // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
  6. // @grant GM_addStyle
  7. // ==/UserScript==
  8. // last updated March 16 2022
  9.  
  10. let streak = parseInt(sessionStorage.getItem("Streak"), 10);
  11.  
  12. if(sessionStorage.getItem("Streak") == null){
  13. sessionStorage.setItem("Streak", 0);
  14. streak = 0;
  15. };
  16.  
  17. function updateStreak(newVariable){
  18. streak = newVariable;
  19. if(document.getElementById("country-streak") != null){
  20. document.getElementById("country-streak").innerHTML = `<div id="country-streak"><div class="status_value__xZMNY">${streak}</div></div>`;
  21. };
  22. if(document.getElementById("country-streak2") != null && document.querySelectorAll('div[data-qa]')[8] != null && !document.querySelector('.standard-final-result_section___B3ne')){
  23. document.getElementById("country-streak2").innerHTML = `<br><h2><i>Country Streak: ${streak}</i></h2>`;
  24. };
  25. if(document.getElementById("country-streak2") != null && !!document.querySelector('.standard-final-result_section___B3ne')){
  26. document.getElementById("country-streak2").innerHTML = `<br><h2><i>Country Streak: ${streak}</i></h2>`;
  27. };
  28. };
  29.  
  30. function addCounter(newDiv0){
  31. if(document.getElementsByClassName("status_section__8uP8o").length == 3){
  32. newDiv0 = document.createElement("div")
  33. newDiv0.className = 'status_section__8uP8o';
  34. document.getElementsByClassName("status_inner__1eytg")[0].appendChild(newDiv0);
  35. newDiv0.innerHTML = `<div class="status_label__SNHKT">Streak</div><div id="country-streak"><div class="status_value__xZMNY">${streak}</div></div>`;
  36. };
  37. if(document.getElementsByClassName("status_section__8uP8o").length == 4 && document.getElementsByClassName("status_label__SNHKT")[3].innerText == "TIME LEFT"){
  38. newDiv0 = document.createElement("div")
  39. newDiv0.className = 'status_section__8uP8o';
  40. document.getElementsByClassName("status_inner__1eytg")[0].appendChild(newDiv0);
  41. newDiv0.innerHTML = `<div class="status_label__SNHKT">Streak</div><div id="country-streak"><div class="status_value__xZMNY">${streak}</div></div>`;
  42. };
  43. };
  44.  
  45. function addCounterOnRefresh(){
  46. setTimeout(function(){
  47. addCounter();
  48. },50);
  49. setTimeout(function(){
  50. addCounter();
  51. },300);
  52. };
  53.  
  54. function addCounter2(){
  55. addCounter();
  56. if(document.getElementsByClassName("status_section__8uP8o").length == 0){
  57. setTimeout(function(){
  58. addCounter();
  59. if(document.getElementsByClassName("status_section__8uP8o").length == 0){
  60. setTimeout(function(){
  61. addCounter();
  62. if(document.getElementsByClassName("status_section__8uP8o").length == 0){
  63. setTimeout(function(){
  64. addCounter();
  65. if(document.getElementsByClassName("status_section__8uP8o").length == 0){
  66. setTimeout(function(){
  67. addCounter();
  68. if(document.getElementsByClassName("status_section__8uP8o").length == 0){
  69. setTimeout(function(){
  70. addCounter();
  71. }, 4000);
  72. };
  73. }, 3000);
  74. };
  75. }, 2000);
  76. };
  77. }, 1200);
  78. };
  79. }, 400);
  80. };
  81. };
  82.  
  83. function addStreakRoundResult(newDiv1){
  84. if(document.getElementById("country-streak2") == null && document.querySelectorAll('div[data-qa]')[8] && !document.querySelector('.standard-final-result_section___B3ne') != null && (location.pathname.startsWith("/game/") || location.pathname.startsWith("/challenge/"))){
  85. newDiv1 = document.createElement("div")
  86. document.querySelectorAll('div[data-qa]')[8].appendChild(newDiv1);
  87. newDiv1.innerHTML = `<div id="country-streak2" style="text-align:center"><br><h2><i>Country Streak: ${streak}</i></h2></div>`;
  88. };
  89. };
  90.  
  91. function addStreakGameSummary(newDiv2){
  92. if(document.getElementById("country-streak2") == null && !!document.querySelector('.standard-final-result_section___B3ne') && (location.pathname.startsWith("/game/") || location.pathname.startsWith("/challenge/"))){
  93. newDiv2 = document.createElement("div")
  94. document.getElementsByClassName("progress-bar_background__A6ZDS progress-bar_expandHeight__W_59W")[0].appendChild(newDiv2);
  95. newDiv2.innerHTML = `<div id="country-streak2" style="text-align:center"><br><h2><i>Country Streak: ${streak}</i></h2></div>`;
  96. };
  97. };
  98.  
  99. function addStreak(){
  100. setTimeout(function(){
  101. addStreakRoundResult();
  102. },300);
  103. setTimeout(function(){
  104. addStreakRoundResult();
  105. },500);
  106. setTimeout(function(){
  107. addStreakGameSummary();
  108. },200);
  109. setTimeout(function(){
  110. addStreakGameSummary();
  111. },400);
  112. setTimeout(function(){
  113. addStreakRoundResult();
  114. addStreakGameSummary();
  115. },1200);
  116. setTimeout(function(){
  117. addStreakRoundResult();
  118. addStreakGameSummary();
  119. },2000);
  120. };
  121.  
  122. document.addEventListener('keypress', (e) => {
  123. switch (e.key){
  124. case '1':
  125. updateStreak(streak + 1);
  126. sessionStorage.setItem("Streak", streak);
  127. break;
  128. case '2':
  129. updateStreak(streak - 1);
  130. sessionStorage.setItem("Streak", streak);
  131. break;
  132. case '0':
  133. updateStreak(0);
  134. sessionStorage.setItem("Streak", 0);
  135. break;
  136. };
  137. });
  138.  
  139. document.addEventListener('click', addCounter2, false);
  140. document.addEventListener('click', addStreak, false);
  141. document.addEventListener('load', addCounterOnRefresh(), false);
Add Comment
Please, Sign In to add comment