Adblock For Moomoo.io and More .io games

Modded Script to remove ads

  1. // ==UserScript==
  2. // @name Adblock For Moomoo.io and More .io games
  3. // @description Modded Script to remove ads
  4. // @author TideSwagger
  5. // @namespace https://greatest.deepsurf.us/en/users/462507-tideswagger
  6. // @version 0.4
  7. // @match *://google.com/*
  8. // @match *://yahoo.com/*
  9. // @match *://bing.com/*
  10. // @match *://greatest.deepsurf.us/*
  11. // @match *://sandbox.moomoo.io/*
  12. // @match *://deeeep.io/*
  13. // @match *://diep.io/*
  14. // @match *://moomoo.io/*
  15. // @grant none
  16. // @icon https://cdn0.iconfinder.com/data/icons/universal-signs-symbols/128/stop-sign-hand-512.png
  17. // @copyright 2019+, GrimStudioZ
  18. // ==/UserScript==
  19.  
  20. // Loads jQuery and triggers a callback function when jQuery has finished loading
  21. function addJQuery(callback) {
  22. var script = document.createElement("script");
  23. script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js");
  24. script.addEventListener('load', function() { callback(); }, false);
  25. document.body.appendChild(script);
  26. }
  27.  
  28. // The main script
  29. function main() {
  30.  
  31. const $ = (unsafeWindow || window).$;
  32.  
  33. // For domains that follow the standard way of blocking AdBlockers typically with a full-page block and overlay.
  34. var arrayStandardBlockerDomains = [ "www.vg247.com",
  35. "www.eurogamer.net",
  36. "www.gamesradar.com",
  37. "www.usatoday.com",
  38. "www.cnn.com"].map(String);
  39.  
  40. // For domains that follow a nonstandard way of blocking AdBlockers by typically blocking the content area only, or some other unique way.
  41. var arrayAbnormalBlockerDomains = [ "www.makeuseof.com",
  42. "www.businessinsider.com",
  43. "www.thedailybeast.com"].map(String);
  44.  
  45. // For domains that typically launch third-party modals for random stuff like sign-ups.
  46. var arrayAuxiliaryBlockerDomains = [ "www.gamesradar.com"].map(String);
  47.  
  48. /*
  49. // keeping for future use
  50. function DomainCheck() {
  51. var i, domain = window.location.hostname;
  52. for (i = 0; i < arrayStandardBlockerDomains.length; i++)
  53. {
  54. if (domain == arrayStandardBlockerDomains[i])
  55. {
  56. return arrayStandardBlockerDomains[i];
  57. break;
  58. }
  59. }
  60. for (i = 0; i < arrayAbnormalBlockerDomains.length; i++)
  61. {
  62. if (domain == arrayAbnormalBlockerDomains[i])
  63. {
  64. return arrayAbnormalBlockerDomains[i];
  65. break;
  66. }
  67. }
  68. for (i = 0; i < arrayAuxiliaryBlockerDomains.length; i++)
  69. {
  70. if (domain == arrayAuxiliaryBlockerDomains[i])
  71. {
  72. return arrayAuxiliaryBlockerDomains[i];
  73. break;
  74. }
  75. }
  76. }
  77. var domain = DomainCheck();
  78. */
  79.  
  80. function DOMStatusCheck() {
  81. if (arrayStandardBlockerDomains.indexOf(window.location.hostname) > -1)
  82. {
  83. var isHTMLBlocked = $("html").attr("style");
  84. var isBodyBlocked = $("body").attr("style");
  85. var isHTMLClassBlocked = $("html").hasClass("sp-message-open");
  86.  
  87. if (isHTMLBlocked !== undefined || isBodyBlocked !== undefined || isHTMLClassBlocked)
  88. {
  89. clearInterval(currentStatus1);
  90. // We're on a page that is blocked
  91.  
  92. $("html").removeAttr("style");
  93. $("body").removeAttr("style");
  94. $("html").removeClass("sp-message-open");
  95.  
  96. switch(window.location.hostname)
  97. {
  98. case arrayStandardBlockerDomains[0]: // vg247
  99. case arrayStandardBlockerDomains[1]: // eurogamer
  100. case arrayStandardBlockerDomains[2]: // gamesradar
  101. case arrayStandardBlockerDomains[3]: // usatoday
  102. case arrayStandardBlockerDomains[4]: // cnn
  103. $("[class*='sp_veil']").remove();
  104. $("[id*='sp_message_id']").remove();
  105. break;
  106. }
  107. }
  108.  
  109. console.clear();
  110. }
  111.  
  112. if (arrayAuxiliaryBlockerDomains.indexOf(window.location.hostname) > -1)
  113. {
  114. switch(window.location.hostname)
  115. {
  116. case arrayAuxiliaryBlockerDomains[0]: // gamesradar
  117. if ($(".raleigh-optin-visible").is(":visible"))
  118. {
  119. $("[class*='raleigh-optin-']").remove();
  120. }
  121. clearInterval(currentStatus2);
  122. break;
  123. }
  124. }
  125.  
  126. if (arrayAbnormalBlockerDomains.indexOf(window.location.hostname) > -1)
  127. {
  128. switch(window.location.hostname)
  129. {
  130. case arrayAbnormalBlockerDomains[0]: // makeuseof
  131. $("[class*='unblockplease-overlay']").remove();
  132. $(".unblockplease").removeAttr("style");
  133. break;
  134. case arrayAbnormalBlockerDomains[1]: // businessinsider
  135. $(".tp-modal").remove();
  136. $(".tp-backdrop").remove();
  137. $("body").removeClass("tp-modal-open");
  138. break;
  139. }
  140. }
  141.  
  142. }
  143.  
  144. function SledgehammerRemoval() {
  145. if (window.location.hostname == arrayAbnormalBlockerDomains[2]) // dailybeast
  146. {
  147. $(".tp-modal").remove();
  148. $(".tp-backdrop").remove();
  149. $("body").removeClass("tp-modal-open");
  150. $("[id*='offer-0-']").remove();
  151. $("[displayname*='PianoTag']").remove();
  152. $("[src*='tinypass.min.js']").remove();
  153. $("#piano_bottom_ribbon_wrapper").remove();
  154. console.clear();
  155. console.log("blocker code removed");
  156. }
  157. }
  158.  
  159. SledgehammerRemoval();
  160.  
  161. function ClearAllIntervals()
  162. {
  163. console.clear();
  164.  
  165. if (window.location.hostname != arrayAbnormalBlockerDomains[2]) // dailybeast
  166. {
  167. clearInterval("SledgehammerRemoval");
  168. console.log("Sledgehammer interval cleared");
  169. }
  170. for (var i = 1; i <= 6; i++)
  171. {
  172. var intervalName = "currentStatus" + i;
  173. clearInterval(intervalName);
  174. }
  175. clearInterval(ci);
  176. console.log("all intervals cleared");
  177. }
  178.  
  179. // Sets up listeners to supercede any blocker shenanigans
  180. if (arrayStandardBlockerDomains.indexOf(window.location.hostname) > -1) { var currentStatus1 = setInterval(DOMStatusCheck, 50); }
  181. if (arrayAuxiliaryBlockerDomains.indexOf(window.location.hostname) > -1) { var currentStatus2 = setInterval(DOMStatusCheck, 50); }
  182.  
  183. // Second pass after 1.5 seconds
  184. if (arrayStandardBlockerDomains.indexOf(window.location.hostname) > -1) { var currentStatus3 = setTimeout(DOMStatusCheck, 1500); }
  185. if (arrayAbnormalBlockerDomains.indexOf(window.location.hostname) > -1) { var currentStatus4 = setTimeout(DOMStatusCheck, 1500); }
  186.  
  187. // Third pass after 2.5 seconds
  188. if (arrayStandardBlockerDomains.indexOf(window.location.hostname) > -1) { var currentStatus5 = setTimeout(DOMStatusCheck, 2500); }
  189. if (arrayAbnormalBlockerDomains.indexOf(window.location.hostname) > -1) { var currentStatus6 = setTimeout(DOMStatusCheck, 2500); }
  190.  
  191. // Last-pass guarantee after 7 seconds
  192. var ci = setTimeout(ClearAllIntervals, 7000);
  193.  
  194. // Perpetual check and removal every 2.5 seconds - The Peter Gabriel Sledgehammer Special
  195. if (arrayAbnormalBlockerDomains.indexOf(window.location.hostname) > -1) { var ABStatus = setInterval(SledgehammerRemoval, 2500); }
  196.  
  197.  
  198. console.clear();
  199. }
  200.  
  201. // Load jQuery and then execute the main function
  202. addJQuery(main);