Assassinate Ad Block Blockers

You know those annoying content blockers that demand you remove your AdBlock so you can read the content? This script removes them by force. Please note, this is not automatically universal like AdBlock Plus. It operates on a per-site basis that the author must add.

  1. // ==UserScript==
  2. // @name Assassinate Ad Block Blockers
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.76
  5. // @description You know those annoying content blockers that demand you remove your AdBlock so you can read the content? This script removes them by force. Please note, this is not automatically universal like AdBlock Plus. It operates on a per-site basis that the author must add.
  6. // @author Kxmode
  7. // @run-at document-idle
  8. // @license Creative Commons, Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
  9. // @match *://*.cnbc.com/*
  10. // @match *://*.cnn.com/*
  11. // @match *://*.commonsensemedia.org/*
  12. // @match *://*.curbed.com/*
  13. // @match *://*.dailymail.co.uk/*
  14. // @match *://*.eurogamer.net/*
  15. // @match *://*.fortune.com/*
  16. // @match *://*.foxbusiness.com/*
  17. // @match *://*.foxnews.com/*
  18. // @match *://*.gamesradar.com/*
  19. // @match *://gamerant.com/*
  20. // @match *://*.theguardian.com/*
  21. // @match *://*.houstonchronicle.com/*
  22. // @match *://*.insider.com/*
  23. // @match *://*.kbb.com/*
  24. // @match *://*.lemonde.fr/*
  25. // @match *://*.makeuseof.com/*
  26. // @match *://www.medpagetoday.com/*
  27. // @match *://metro.co.uk/*
  28. // @match *://*.nbcnews.com/*
  29. // @match *://*.nymag.com/*
  30. // @match *://*.nytimes.com/*
  31. // @match *://*.rottentomatoes.com/*
  32. // @match *://*.sfgate.com/*
  33. // @match *://*.thecut.com/*
  34. // @match *://*.thedailybeast.com/*
  35. // @match *://*.vg247.com/*
  36. // @match *://*.vulture.com/*
  37. // @match *://*.washingtonpost.com/*
  38. // ==/UserScript==
  39.  
  40. /* jshint esversion: 6 */
  41. /* eslint-disable */
  42.  
  43. DocumentReady(ExecuteScript);
  44.  
  45. function DocumentReady(func) {
  46. if (document.readyState !== 'loading') ExecuteScript();
  47. else document.addEventListener('DOMContentLoaded', func);
  48. }
  49.  
  50. // The main script
  51. function ExecuteScript() {
  52.  
  53. // 1. INITIALIZERS
  54. let currentStatus1, currentStatus2, currentStatus3, currentStatus4,
  55. currentStatus5, currentStatus6, currentStatus7, currentStatus8,
  56. currentStatus9, currentStatus10;
  57. let okayToProcess = true, isLooped = false, deleteIframes = true;
  58.  
  59. const URL_HOSTNAME = window.location.hostname;
  60.  
  61. const BLOCKER_DOMAINS = [
  62. { domains: [ 'www.cnn.com',
  63. 'www.gamesradar.com',
  64. 'www.vg247.com' ]}, // For domains that uses a specific service blocking AdBlockers
  65. { domains: [ 'www.cnbc.com',
  66. 'www.commonsensemedia.org',
  67. 'cooking.nytimes.com',
  68. 'www.curbed.com',
  69. 'www.dailymail.co.uk',
  70. 'editorial.rottentomatoes.com',
  71. 'www.eurogamer.net',
  72. 'fortune.com',
  73. 'www.foxbusiness.com',
  74. 'www.foxnews.com',
  75. 'www.fresnobee.com',
  76. 'gamerant.com',
  77. 'www.houstonchronicle.com',
  78. 'www.inquirer.com',
  79. 'www.insider.com',
  80. 'www.kbb.com',
  81. 'www.lemonde.fr',
  82. 'www.makeuseof.com',
  83. 'www.medpagetoday.com',
  84. 'metro.co.uk',
  85. 'www.miamiherald.com',
  86. 'www.nbcnews.com',
  87. 'www.newyorker.com',
  88. 'nymag.com',
  89. 'www.nytimes.com',
  90. 'www.rottentomatoes.com',
  91. 'www.seekingalpha.com',
  92. 'www.sfgate.com',
  93. 'www.thecut.com',
  94. 'www.thedailybeast.com',
  95. 'www.theguardian.com',
  96. 'www.usatoday.com',
  97. 'www.vulture.com',
  98. 'www.washingtonpost.com',
  99. ]}, // For domains that follow a nonstandard or custom way of blocking AdBlockers
  100. { domains: [ 'www.gamesradar.com' ]} // For domains that typically launch third-party modals for random stuff like sign-ups
  101. ];
  102. const [STANDARD_DOMAINS, ABNORMAL_DOMAINS, AUXILIARY_DOMAINS] = BLOCKER_DOMAINS.map(({ domains }) => domains);
  103.  
  104. const DOMAIN = {
  105. CNN: STANDARD_DOMAINS[0],
  106. CNBC: ABNORMAL_DOMAINS[0],
  107. CommonSenseMedia: ABNORMAL_DOMAINS[1],
  108. NewYorkTimesCooking: ABNORMAL_DOMAINS[2],
  109. Curbed: ABNORMAL_DOMAINS[3],
  110. DailyMail: ABNORMAL_DOMAINS[4],
  111. RottenTomatoesEditorial: ABNORMAL_DOMAINS[5],
  112. EuroGamer: ABNORMAL_DOMAINS[6],
  113. Fortune: ABNORMAL_DOMAINS[7],
  114. FoxBusiness: ABNORMAL_DOMAINS[8],
  115. FoxNews: ABNORMAL_DOMAINS[9],
  116. FresnoBee: ABNORMAL_DOMAINS[10],
  117. GameRant: ABNORMAL_DOMAINS[11],
  118. GamesRadar: STANDARD_DOMAINS[1],
  119. GamesRadarAuxiliary: AUXILIARY_DOMAINS[0],
  120. HoustonChronicle: ABNORMAL_DOMAINS[12],
  121. Inquirer: ABNORMAL_DOMAINS[13],
  122. Insider: ABNORMAL_DOMAINS[14],
  123. KelleyBlueBook: ABNORMAL_DOMAINS[15],
  124. LeMonde: ABNORMAL_DOMAINS[16],
  125. MakeUseOf: ABNORMAL_DOMAINS[17],
  126. MedPageToday: ABNORMAL_DOMAINS[18],
  127. MetroUK: ABNORMAL_DOMAINS[19],
  128. MiamiHerald: ABNORMAL_DOMAINS[20],
  129. NBCNews: ABNORMAL_DOMAINS[21],
  130. NewYorker: ABNORMAL_DOMAINS[22],
  131. NYMag: ABNORMAL_DOMAINS[23],
  132. NewYorkTimes: ABNORMAL_DOMAINS[24],
  133. RottenTomatoes: ABNORMAL_DOMAINS[25],
  134. SeekingAlpha: ABNORMAL_DOMAINS[26],
  135. SFGate: ABNORMAL_DOMAINS[27],
  136. TheCut: ABNORMAL_DOMAINS[28],
  137. TheDailyBeast: ABNORMAL_DOMAINS[29],
  138. TheGuardian: ABNORMAL_DOMAINS[30],
  139. USAToday: ABNORMAL_DOMAINS[31],
  140. VG247: STANDARD_DOMAINS[2],
  141. Vulture: ABNORMAL_DOMAINS[32],
  142. WashingtonPost: ABNORMAL_DOMAINS[33],
  143. };
  144.  
  145. // 2. GENERAL FUNCTIONS
  146. function SpecialNinjaJavaScriptKiller() {
  147. const CAN_PROCEED = URL_HOSTNAME === DOMAIN.TheCut || URL_HOSTNAME === DOMAIN.TheGuardian || URL_HOSTNAME === DOMAIN.MedPageToday ||
  148. URL_HOSTNAME === DOMAIN.NewYorkTimes || URL_HOSTNAME === DOMAIN.NewYorkTimesCooking || URL_HOSTNAME === DOMAIN.RottenTomatoes ||
  149. URL_HOSTNAME === DOMAIN.RottenTomatoesEditorial || URL_HOSTNAME === DOMAIN.WashingtonPost || URL_HOSTNAME === DOMAIN.Vulture;
  150. if (!CAN_PROCEED) return false;
  151. switch(URL_HOSTNAME) {
  152. case DOMAIN.TheCut: TheCut(); break;
  153. case DOMAIN.TheGuardian: TheGuardian(isLooped); deleteIframes = false; break;
  154. case DOMAIN.MedPageToday: MedPageToday(); break;
  155. case DOMAIN.WashingtonPost: WashingtonPost(isLooped); break;
  156. case DOMAIN.NewYorkTimesCooking: NewYorkTimes(); break;
  157. case DOMAIN.Vulture: Vulture(); break;
  158. }
  159. const PROCESSING_MESSAGE = 'The Assassinate Ad Block Blockers script is doing its jobs. Please wait a few seconds. 🚦';
  160. if (URL_HOSTNAME === DOMAIN.TheGuardian)
  161. StartingRemovalMessage(PROCESSING_MESSAGE, 300);
  162. else
  163. StartingRemovalMessage(PROCESSING_MESSAGE);
  164. CommonRemovalItems(deleteIframes);
  165. RemoveHtmlComments();
  166. document.querySelector('#Injected-By-Assassinate-Ad-Block-Blockers').remove();
  167. document.querySelectorAll('.fancybox-overlay').forEach(function(element) { element.remove(); });
  168. if (URL_HOSTNAME === DOMAIN.TheGuardian)
  169. SuccessRemovalMessage(300);
  170. else
  171. SuccessRemovalMessage();
  172. }
  173. SpecialNinjaJavaScriptKiller(); // run this asap
  174. function BreakJavaScript() {
  175. console.log('%c 👍 Assassinate Ad Block Blockers — The following is not an error. Simply a way to abort JavaScript execution on this webpage.', 'background: #0b801d; color: #fff;');
  176. throw new Error('JavaScript purposely broken by Assassinate Ad Block Blockers');
  177. }
  178. function ClearCookies() {
  179. document.cookie.split(';').forEach(cookie => {
  180. const NAME = cookie.split('=')[0].trim();
  181. const DOMAIN = location.hostname.split(/\.(?=[^\.]+\.)/).slice(1).join('.');
  182. document.cookie = `${ NAME }=;max-age=0;path=/;domain=${ DOMAIN }`;
  183. });
  184. }
  185. function CommonRemovalItems(removeIframe = true) {
  186. //primary
  187. document.querySelectorAll('script').forEach(function(element) { element.remove(); });
  188. document.querySelectorAll('noscript').forEach(function(element) { element.remove(); });
  189. if (removeIframe) document.querySelectorAll('iframe').forEach(function(element) { element.remove(); });
  190. document.querySelectorAll('[as="script"]').forEach(function(element) { element.remove(); });
  191.  
  192. //secondary
  193. document.querySelector('html').removeAttribute('style');
  194. document.body.removeAttribute('style');
  195. }
  196. function OkayToUseSledgeHammerRemoval() {
  197. return (URL_HOSTNAME === DOMAIN.CNBC || URL_HOSTNAME === DOMAIN.CNN || URL_HOSTNAME === DOMAIN.Curbed ||
  198. URL_HOSTNAME === DOMAIN.TheCut || URL_HOSTNAME === DOMAIN.TheDailyBeast || URL_HOSTNAME === DOMAIN.TheDailyBeast ||
  199. URL_HOSTNAME === DOMAIN.HoustonChronicle || URL_HOSTNAME === DOMAIN.KelleyBlueBook || URL_HOSTNAME === DOMAIN.NewYorkTimes ||
  200. URL_HOSTNAME === DOMAIN.NewYorkTimesCooking || URL_HOSTNAME === DOMAIN.RottenTomatoes || URL_HOSTNAME === DOMAIN.RottenTomatoesEditorial ||
  201. URL_HOSTNAME === DOMAIN.MedPageToday || URL_HOSTNAME === DOMAIN.Vulture ) ? true : false;
  202. }
  203. function RemoveHtmlComments() {
  204. let children = document.body.childNodes;
  205. for (let child in children) {
  206. if (children[child].nodeType === Node.COMMENT_NODE) children[child].remove();
  207. }
  208. }
  209. function StandardRemoval() {
  210. const IS_HTML_BLOCKED = document.querySelector('html').getAttribute('style')
  211. const IS_BODY_BLOCKED = document.body.getAttribute('style');
  212. const IS_HTML_CLASS_BLOCKED = document.querySelector('html').classList.contains('sp-message-open');
  213.  
  214. if (IS_HTML_BLOCKED !== undefined || IS_BODY_BLOCKED !== undefined || IS_HTML_CLASS_BLOCKED)
  215. {
  216. clearInterval(currentStatus1);
  217. document.querySelector('html').removeAttribute('style');
  218. document.body.removeAttribute('style');
  219. document.querySelector('html').classList.remove('sp-message-open');
  220.  
  221. switch(URL_HOSTNAME)
  222. {
  223. case DOMAIN.VG247:
  224. document.querySelectorAll('[class*="sp_veil"]').forEach(function(element) { element.remove(); })
  225. document.querySelectorAll('[id*="sp_message_id"]').forEach(function(element) { element.remove(); })
  226. break;
  227. }
  228. }
  229.  
  230. console.clear();
  231. }
  232. function StartingRemovalMessage(message, top = 220) {
  233. document.body.prepend(Object.assign( document.createElement('div'), {
  234. id: "Injected-By-Assassinate-Ad-Block-Blockers",
  235. style: `background-color: #D8070E; font-weight: bold; color: white; text-align: center; margin: auto; padding: 10px; position: relative; z-index: 9999999999 !important; top: ${ top }px;`
  236. }));
  237.  
  238. const INJECTOR_DIV = document.querySelector('#Injected-By-Assassinate-Ad-Block-Blockers');
  239.  
  240. const STYLE = document.createElement('style');
  241. STYLE.innerText = '#Injected-By-Assassinate-Ad-Block-Blockers img { width: unset; }';
  242. INJECTOR_DIV.appendChild(STYLE);
  243.  
  244. INJECTOR_DIV.append(Object.assign(document.createElement('img'), {
  245. src: "https://i.imgur.com/velCxDX.gif",
  246. style: "display: inline-block; vertical-align: middle; padding-right: 10px;"
  247. }));
  248. const SPAN = document.createElement('span');
  249. SPAN.innerText = message;
  250. INJECTOR_DIV.appendChild(SPAN);
  251. }
  252. function SuccessRemovalMessage(top = 220) {
  253. if (document.querySelector('#Injected-By-Assassinate-Ad-Block-Blockers') !== null) {
  254. const INJECTOR_DIV = document.querySelector('#Injected-By-Assassinate-Ad-Block-Blockers');
  255. INJECTOR_DIV.querySelector('img').src = 'https://i.imgur.com/i5e5xp0.gif';
  256. INJECTOR_DIV.querySelector('span').innerText = 'Success 😎. Enjoy! You can start scrolling now...';
  257. INJECTOR_DIV.style = `background-color: green; font-weight: bold; color: white; text-align: center; margin: auto; padding: 10px; position: relative; z-index: 9999999999 !important; transition: .5s; top: ${ top }px;`;
  258. }
  259. }
  260. function observeAndRemove(selectors = []) {
  261. if (!Array.isArray(selectors) || selectors.length === 0) return;
  262. const observer = new MutationObserver((mutations) => {
  263. for (const mutation of mutations) {
  264. mutation.addedNodes.forEach((node) => {
  265. if (!(node instanceof HTMLElement)) return;
  266. for (const selector of selectors) {
  267. if (node.matches?.(selector) || node.querySelector?.(selector)) {
  268. console.warn("🛑 Blocked element matching selector:", selector, node);
  269. node.remove();
  270. break; // Optional: stop checking other selectors once removed
  271. }
  272. }
  273. });
  274. }
  275. });
  276. observer.observe(document.documentElement, {
  277. childList: true,
  278. subtree: true
  279. });
  280. console.log("👁️ MutationObserver is watching for:", selectors.join(", "));
  281. }
  282. // 3. SITE SPECIFIC DIRECTIVES
  283. function CNBC(isLooped) {
  284. CommonRemovalItems(deleteIframes);
  285.  
  286. document.querySelectorAll('#checkout-container').forEach(function(element) { element.remove(); });
  287. document.querySelectorAll('.ArticleGate-proGate').forEach(function(element) { element.remove(); });
  288.  
  289. let selector = [...document.querySelectorAll('h3')].filter(element => element.textContent.includes('Please support our journalism by allowing ads') );
  290. if (selector.length > 0) selector[0].parentNode.parentNode.parentNode.parentNode.remove();
  291.  
  292. selector = [...document.querySelectorAll('span')].filter(element => element.textContent.includes('Powered By'));
  293. if (selector.length > 0) selector[0].parentNode.parentNode.parentNode.parentNode.remove();
  294.  
  295. if (typeof isLooped !== 'undefined') {
  296. if (!isLooped && document.querySelector('.ArticleBody-extraData') !== null) {
  297. let element = document.querySelector('.ArticleBody-extraData');
  298. element = element.querySelector('[class*="-data"]');
  299. const CONTENT_ARRAY = element.textContent.split(' ');
  300. const PARAGRAPH_WORD_COUNT = 100;
  301.  
  302. const PARENT_ELEMENT = [];
  303. while ((element = element.parentNode) && element !== document) {
  304. if (element.matches('.ArticleBody-articleBody')) {
  305. PARENT_ELEMENT.push(element);
  306. break;
  307. }
  308. }
  309.  
  310. let articleContent = '', index = 0;
  311.  
  312. for (let word of CONTENT_ARRAY) {
  313. articleContent += `${ word } `;
  314. if (index === PARAGRAPH_WORD_COUNT) {
  315. articleContent += '<br/><br/>';
  316. index = 0;
  317. }
  318. index++;
  319. }
  320.  
  321. const CONTENT_ELEMENT = document.createElement('div');
  322. CONTENT_ELEMENT.setAttribute('style', 'line-height: 1.6em;');
  323. CONTENT_ELEMENT.innerHTML = articleContent;
  324. PARENT_ELEMENT[0].appendChild(CONTENT_ELEMENT);
  325.  
  326. document.querySelectorAll('.group').forEach(function (element) { element.remove(); })
  327. }
  328. }
  329. }
  330. function CNN() {
  331. console.log('scanning');
  332. document.querySelectorAll('script').forEach( element => { element.remove(); });
  333. document.querySelectorAll('.ad-slot-header').forEach(function(element) { element.remove(); });
  334. document.querySelectorAll('#ad-feedback__modal-overlay').forEach(function(element) { element.remove(); });
  335. document.querySelectorAll('.ad-slot-header__wrapper').forEach(function(element) { element.remove(); });
  336. }
  337. function CommonSenseMedia() {
  338. document.querySelector('body').classList.remove('csm-premium-gated');
  339. const MEMBER_GATE = document.querySelector('#user-plus-gate');
  340. if (MEMBER_GATE !== null) document.querySelector('#user-plus-gate').remove();
  341. }
  342. function Curbed() {
  343. document.querySelector('html').setAttribute('style', 'overflow-y: unset;');
  344. document.body.setAttribute('style', 'position: unset; width: 1100px; margin: 0 auto;');
  345. document.querySelectorAll('.article .article-header, .article .article-header.inline').forEach(function(element) { element.setAttribute('style', 'margin: unset;'); });
  346. document.querySelectorAll('.article .lede-image-wrapper.inline.horizontal').forEach(function(element) { element.setAttribute('style', 'margin: unset;'); })
  347. document.querySelectorAll('#paywall-reader-interface').forEach(function(element) { element.remove(); });
  348. document.querySelectorAll('#cliff-takeover').forEach(function(element) { element.remove(); });
  349. document.querySelectorAll('.tertiary').forEach(function(element) { element.removeAttribute('style'); });
  350. document.querySelector('.ad_static').remove();
  351. document.querySelector('.zephr-zone-footer').remove();
  352. document.querySelector('.zephr-overlay').remove();
  353. }
  354. function TheCut() {
  355. CommonRemovalItems(deleteIframes);
  356. document.querySelectorAll('#paywall-reader-interface').forEach(function(element) { element.remove(); });
  357. document.querySelectorAll('#cliff-takeover').forEach(function(element) { element.remove(); });
  358. document.querySelectorAll('.tertiary').forEach(function(element) { element.removeAttribute('style'); });
  359. if (document.querySelector('.ad_static')) document.querySelector('.ad_static').remove();
  360. if (document.querySelector('.zephr-zone-footer')) document.querySelector('.zephr-zone-footer').remove();
  361. if (document.querySelector('.zephr-overlay')) document.querySelector('.zephr-overlay').remove();
  362. }
  363. function TheDailyBeast() {
  364. document.querySelectorAll('.DEPRECATEDAdSlot').forEach(function(element) { element.remove(); })
  365. document.querySelectorAll('.tp-modal').forEach(function(element) { element.remove(); });
  366. document.querySelectorAll('.tp-backdrop').forEach(function(element) { element.remove(); });
  367. document.body.classList.remove('tp-modal-open');
  368. document.querySelectorAll('[id*="offer-0-"]').forEach(function(element) { element.remove(); });
  369. document.querySelectorAll('[displayname*="PianoTag"]').forEach(function(element) { element.remove(); });
  370. document.querySelectorAll('[src*="tinypass.min.js"]').forEach(function(element) { element.remove(); });
  371. document.querySelectorAll('#piano_bottom_ribbon_wrapper').forEach(function(element) { element.remove(); });
  372. document.querySelectorAll('iframe').forEach(function(element) { element.remove(); });
  373. document.body.removeAttribute('style');
  374. document.querySelectorAll('#bottom_ribbon_modal_wrapper').forEach(function(element) { element.remove(); });
  375. document.querySelectorAll('.StoryPage.is-locked').forEach(function(element) { element.classList.remove('is-locked'); });
  376. document.querySelectorAll('#bottom_ribbon_modal_expand_wrapper').forEach(function(element) { element.remove(); });
  377. document.querySelectorAll('.PageTopAd').forEach(function(element) { element.remove(); });
  378. document.querySelectorAll('.FooterAd').forEach(function(element) { element.remove(); });
  379. document.querySelectorAll('#Injected-By-Assassinate-Ad-Block-Blockers').forEach(function(element) { element.remove(); });
  380. document.querySelectorAll('.ExtraSidebarAd').forEach(function(element) { element.remove(); });
  381. document.querySelectorAll('.AdSlot').forEach(function(element) { element.remove(); });
  382. document.querySelectorAll('.SimpleAd').forEach(function(element) { element.remove(); });
  383. document.querySelectorAll('[style="margin:40px 0;min-height:200px"]').forEach(function(element) { element.remove(); });
  384. document.querySelector('#bottom_ribbon_modal').remove();
  385. document.querySelector('#fusion-app').classList.remove('is-locked');
  386.  
  387. console.clear();
  388. console.log('%c 😎 Assassinate Ad Block Blockers — Blocker code removed', 'background: #0b801d; color: #fff;');
  389. }
  390. function DailyMail() {
  391. CommonRemovalItems(deleteIframes);
  392. document.body.removeAttribute('style');
  393. document.querySelectorAll('.fc-ab-root').forEach(function(element) { element.remove(); })
  394. document.querySelectorAll('#chromelessPlayer').forEach(function(element) { element.remove(); });
  395. document.querySelectorAll('.billboard-container.watermark').forEach(function(element) { element.remove(); });
  396. document.querySelectorAll('#chromelessPlayer').forEach(function(element) { element.remove(); });
  397. document.querySelectorAll('.adHolder.watermark').forEach(function(element) { element.remove(); });
  398. document.querySelectorAll('.mpu_puff_wrapper.watermark').forEach(function(element) { element.remove(); });
  399. document.querySelector('html').removeAttribute('class');
  400. }
  401. function EuroGamer() {
  402. document.querySelectorAll('html').forEach(function(element) { element.removeAttribute('style'); element.classList.remove('sp-message-open') });
  403. document.body.removeAttribute('style');
  404. document.querySelectorAll('[class*="sp_veil"]').forEach(function(element) { element.remove(); });
  405. document.querySelectorAll('[id*="sp_message_id"]').forEach(function(element) { element.remove(); });
  406. }
  407. function Fortune() {
  408. if (document.querySelector('[id*="Leaderboard"]') !== null) document.querySelector('[id*="Leaderboard"]').parentNode.remove();
  409. document.querySelectorAll('.paywall-selector').forEach(function(element) { element.remove(); });
  410. document.querySelectorAll('[class*="paywall"]').forEach(function(element) { element.setAttribute('style','') });
  411.  
  412. document.querySelectorAll('[class*="articleBody__wrapper-"]').forEach(function(element) {
  413. element.querySelectorAll('div').forEach(function(innerElement) {
  414. const ATTR = innerElement.getAttribute('style');
  415. if (typeof ATTR != 'undefined' && ATTR !== false && ATTR.includes('grayscale(0.5) blur'))
  416. innerElement.setAttribute('style','');
  417. });
  418. });
  419.  
  420. document.querySelectorAll('.paywall.paywallActive').forEach(function(element) { element.setAttribute('style','filter: unset; z-index: unset; pointer-events: unset; user-select: unset;') });
  421. }
  422. function FoxBusiness() {
  423. document.body.removeAttribute('style');
  424. document.querySelectorAll('.fc-ab-root').forEach(function(element) { element.remove(); })
  425.  
  426. const ELEMENTS = document.querySelectorAll('div');
  427. const ELEMENTS_TO_REMOVE = [...ELEMENTS].filter(element => element.textContent.includes('Disable any ad or script blocking software'));
  428. for (const element of ELEMENTS_TO_REMOVE) element.remove();
  429. }
  430. function FoxNews() {
  431. document.body.removeAttribute('style');
  432. document.querySelectorAll('.fc-ab-root').forEach(function(element) { element.remove(); })
  433. }
  434. function GamesRadar(interval) {
  435. if (document.querySelector('.fc-ab-root') !== null)
  436. if (document.querySelector('.fc-ab-root').style.visibility === 'visible')
  437. document.querySelectorAll('.raleigh-optin-visible').forEach(function(element) { element.remove(); });
  438.  
  439. if (typeof interval !== 'undefined')
  440. clearInterval(interval);
  441. else
  442. clearAllIntervals();
  443. }
  444. function GameRant() {
  445. document.querySelector('html').removeAttribute('style');
  446. document.body.removeAttribute('style');
  447.  
  448. const SELECTOR = [...document.querySelectorAll('h3')].filter(element => element.textContent.includes('using an adblocker') );
  449. if (SELECTOR.length > 0) SELECTOR[0].parentNode.parentNode.parentNode.parentNode.remove();
  450. document.querySelectorAll('.adsninja-ad-zone').forEach(function(element) { element.remove(); });
  451. }
  452. function TheGuardian(isLooped) {
  453. CommonRemovalItems(deleteIframes);
  454.  
  455. document.body.setAttribute('class','');
  456. document.querySelectorAll('.modal-scrollable').forEach(function(element) { element.remove(); });
  457. document.querySelectorAll('.connext-modal-backdrop.fade').forEach(function(element) { element.remove(); });
  458. document.querySelectorAll('#sign-in-gate').forEach(function(element) { element.remove() })
  459. const BANNER_HEADER = document.querySelector('.top-banner-ad-container'); if (BANNER_HEADER !== null) BANNER_HEADER.parentNode.parentNode.parentNode.parentNode.parentNode.remove();
  460.  
  461. const ARTICLE = document.querySelector('[data-layout="StandardLayout"] article') || document.querySelector('[data-layout="ImmersiveLayout"] article') || document.querySelector('[data-layout="ShowcaseLayout"] article');
  462.  
  463. if (typeof isLooped !== 'undefined') {
  464. if (!isLooped && ARTICLE !== null && document.querySelector('#article-cloned') === null) {
  465. // clone the article
  466. const CLONED_CONTENT = ARTICLE.cloneNode(true);
  467. CLONED_CONTENT.id = 'article-cloned';
  468. document.querySelector('main').prepend(CLONED_CONTENT);
  469.  
  470. // remove duplicate
  471. document.querySelectorAll('article').forEach(function(element) { if (element.getAttribute('id') === null) element.remove(); });
  472.  
  473. // clean up
  474. document.querySelectorAll('.top-banner-ad-container').forEach(function(element) {
  475. while ((element = element.parentNode) && element !== document) {
  476. if (element.matches('[class*="dcr-"]')) {
  477. element.remove();
  478. }
  479. }
  480. });
  481.  
  482. // video fix
  483. const ELEMENT = document.querySelector('button[data-testid]');
  484. if (ELEMENT !== null) {
  485. const YOUTUBE_ID = ELEMENT.getAttribute('data-cy').split('-')[2];
  486. const YOUTUBE_LABEL = ELEMENT.getAttribute('aria-label');
  487.  
  488. document.querySelector('[data-gu-name="media"] > div').remove();
  489.  
  490. const MEDIA_WRAPPER = document.querySelector('[data-gu-name="media"]');
  491. MEDIA_WRAPPER.setAttribute('style','padding-bottom: 20px;');
  492.  
  493. const YOUTUBE_WRAPPER = document.createElement('div');
  494.  
  495. const YOUTUBE_IFRAME = document.createElement('iframe');
  496. YOUTUBE_IFRAME.setAttribute('width', '620');
  497. YOUTUBE_IFRAME.setAttribute('height', '349');
  498. YOUTUBE_IFRAME.setAttribute('src',`https://www.youtube.com/embed/${ YOUTUBE_ID }`);
  499. YOUTUBE_IFRAME.setAttribute('title', YOUTUBE_LABEL);
  500. YOUTUBE_IFRAME.setAttribute('frameborder', 0);
  501. YOUTUBE_IFRAME.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share');
  502. YOUTUBE_IFRAME.setAttribute('allowfullscreen','');
  503.  
  504. YOUTUBE_WRAPPER.append(YOUTUBE_IFRAME);
  505. MEDIA_WRAPPER.append(YOUTUBE_WRAPPER);
  506. }
  507.  
  508. }
  509. }
  510. }
  511. function HoustonChronicle() {
  512. CommonRemovalItems(deleteIframes);
  513. document.querySelectorAll('.fancybox-overlay').forEach(function(element) { element.remove(); });
  514. document.querySelectorAll('.fancybox-lock').forEach(function(element) { element.classList.remove('fancybox-lock'); });
  515. document.querySelectorAll('.bc_header').forEach(function(element) { element.remove(); });
  516. document.querySelectorAll('style:last-child').forEach(function(element) { if (!element.hasAttribute('id')) element.remove(); });
  517. }
  518. function Insider() {
  519. document.querySelectorAll('.tp-modal').forEach(function(element) { element.remove(); });
  520. document.querySelectorAll('.tp-backdrop.tp-active').forEach(function(element) { element.remove(); });
  521. document.body.removeAttribute('class');
  522. }
  523. function KelleyBlueBook() {
  524. document.querySelector('#WhitelistOverlayModalBackground').remove();
  525. document.querySelector('html').removeAttribute('class');
  526. }
  527. function LeMonde() {
  528. if (document.querySelector('.gdpr-lmd-wall') !== null) document.querySelector('.gdpr-lmd-wall').remove();
  529. document.querySelector('html').classList.remove('popin-gdpr-no-scroll')
  530. document.querySelector('body').classList.remove('popin-gdpr-no-scroll');
  531. }
  532. function MakeUseOf() {
  533. document.querySelectorAll('[class*="unblockplease-overlay"]').forEach(function(element) { element.removeAttribute('style'); });
  534. document.querySelectorAll('.unblockplease').forEach(function(element) { element.removeAttribute('style'); });
  535. document.querySelectorAll('.adsninja-ad-zone').forEach(function(element) { element.remove(); });
  536. }
  537. function MedPageToday() {
  538. CommonRemovalItems(deleteIframes);
  539. document.body.setAttribute('class','');
  540. document.querySelectorAll('.mpt-registration-html').forEach(function(element) { element.remove() });
  541. const SITE_WRAPPER = document.querySelector('#siteWrapper');
  542. SITE_WRAPPER.removeAttribute('style')
  543. SITE_WRAPPER.setAttribute('style','margin-top: 40px;');
  544. document.querySelectorAll('.recirc-item__img-container').forEach(function(element) { element.setAttribute('style','margin-right: 20px;') });
  545. document.querySelectorAll('.leaderboard-region').forEach(function(element) { element.remove() });
  546. }
  547. function MetroUK() {
  548. document.body.removeAttribute('style');
  549. document.querySelectorAll('.fc-ab-root').forEach(function(element) { element.remove(); })
  550. CommonRemovalItems(deleteIframes);
  551. document.body.classList.remove('mol-fe-ab-dialog');
  552. document.querySelectorAll('[class*="mol-ads-"]').forEach(function(element) { element.remove() });
  553. if (document.querySelector('[id*="mol-ads-"]') !== null) document.querySelector('[id*="mol-ads-"]').remove();
  554. const BLOCKER_MODAL = document.querySelector('[class*="overlay-34_Kj"]');
  555. if (BLOCKER_MODAL !== null) BLOCKER_MODAL.parentNode.parentNode.remove();
  556. }
  557. function NBCNews() {
  558. document.querySelector('html').setAttribute('style','');
  559. document.body.setAttribute('style','');
  560.  
  561. const SELECTOR = [...document.querySelectorAll('h3')].filter(element => element.textContent.includes('Please support our journalism') );
  562. if (SELECTOR.length > 0) SELECTOR[0].parentNode.parentNode.parentNode.parentNode.remove();
  563.  
  564. let selector = [...document.querySelectorAll('h3')].filter(element => element.textContent.includes('Please support our journalism by allowing ads') );
  565. if (selector.length > 0) selector[0].parentNode.parentNode.parentNode.parentNode.remove();
  566.  
  567. selector = [...document.querySelectorAll('span')].filter(element => element.textContent.includes('Powered By'));
  568. if (selector.length > 0) selector[0].parentNode.parentNode.parentNode.parentNode.remove();
  569. }
  570. function NewYorkTimes() {
  571. // nytimes
  572. if (window.location.host === DOMAIN.NewYorkTimesCooking) {
  573. CommonRemovalItems();
  574. document.querySelectorAll('script').forEach(function(element) { element.remove(); });
  575. document.querySelector('body').removeAttribute('class');
  576. if (document.querySelector('[class*="modal_modal-window-container__"]')) document.querySelector('[class*="modal_modal-window-container__"]').remove();
  577. } else {
  578. if (window.location.pathname.includes('/slideshow/')) {
  579. if (okayToProcess) {
  580. document.querySelectorAll('#gateway-content').forEach(function(element) { element.remove(); })
  581. document.querySelectorAll('div#app > div > div > [class*="css-"]:last-child').forEach(function(element) { element.remove() });
  582. okayToProcess = false;
  583. }
  584. } else {
  585. CommonRemovalItems();
  586. document.querySelectorAll('#standalone-footer').forEach(function(element) { element.remove(); })
  587. document.querySelectorAll('#gateway-content').forEach(function(element) { element.remove(); })
  588. document.body.setAttribute('style','overflow: unset;');
  589. document.querySelectorAll('#site-content').forEach(function(element) { element.setAttribute('style','position: unset;'); })
  590. document.querySelectorAll('[id*="lire-ui-"]').forEach(function(element) { element.remove(); })
  591. document.querySelectorAll('[id*="story-ad-"]').forEach(function(element) { element.remove(); })
  592.  
  593. // if (document.querySelector('[data-testid="imageblock-wrapper"]') !== null) document.querySelector('[data-testid="imageblock-wrapper"]').remove();
  594. document.querySelector('div[data-audience]');
  595. document.querySelector('.vi-gateway-container').lastElementChild;
  596.  
  597. // nytimes' cooking
  598. document.querySelectorAll('[class*="modal_modal-window-container"]').forEach(function(element) { element.parentNode.remove(); })
  599. document.body.setAttribute('class','');
  600. document.body.setAttribute('style','');
  601. document.querySelectorAll('[class*="mask_no-scroll"]').forEach(function(element) { element.setAttribute('class',''); })
  602. if (document.querySelector('.nytc---modal-window---windowContainer') !== null) document.querySelector('.nytc---modal-window---windowContainer').parentNode.parentNode.remove(); // a modal with no close button? 😕
  603. document.querySelectorAll('#container').forEach(function(element) { element.setAttribute('style','overflow: unset;'); })
  604. document.querySelectorAll('.nytc---modal-window---noScroll').forEach(function(element) { element.setAttribute('style','overflow: unset;'); })
  605. document.querySelectorAll('#site-content').forEach(function(element) { element.setAttribute('style','overflow: unset;'); })
  606. document.querySelectorAll('[class*="ad-unit"]').forEach(function(element) { element.remove(); })
  607.  
  608. // nytimes' magazine and site-wide
  609. document.querySelectorAll('[class*="css-mcm"]').forEach(function(element) { element.setAttribute('style','position: unset;'); })
  610.  
  611. // random blocker
  612. if (document.querySelector('[data-testid="onsite-messaging-unit-gateway"]')) document.querySelector('[data-testid="onsite-messaging-unit-gateway"]').remove();
  613. if (document.querySelector('#site-content').parentNode.nextSibling) document.querySelector('#site-content').parentNode.nextSibling.remove();
  614. }
  615. }
  616. }
  617. function NYMag() {
  618. document.querySelector('.ad_static').remove();
  619. document.querySelector('.zephr-zone-footer').remove();
  620. document.querySelector('.zephr-overlay').remove();
  621. document.querySelector('html').removeAttribute('style');
  622. document.body.removeAttribute('style');
  623. document.querySelectorAll('#paywall-reader-interface').forEach(function(element) { element.remove(); })
  624. document.querySelectorAll('#cliff-takeover').forEach(function(element) { element.remove(); })
  625. document.querySelectorAll('.tertiary').forEach(function(element) { element.setAttribute('style',''); })
  626. BreakJavaScript();
  627. }
  628. function RottenTomatoes() {
  629. document.querySelector('html').removeAttribute('style');
  630. document.body.removeAttribute('style');
  631. let selector = [...document.querySelectorAll('h3')].filter(element => element.textContent.includes('Welcome to Rotten Tomatoes! Please support us by allowing ads') );
  632. if (selector.length > 0) selector[0].parentNode.parentNode.parentNode.parentNode.remove();
  633.  
  634. selector = [...document.querySelectorAll('span')].filter(element => element.textContent.includes('Powered By'));
  635. if (selector.length > 0) selector[0].parentNode.parentNode.parentNode.parentNode.remove();
  636. }
  637. function SFGate() {
  638. document.querySelector('html').removeAttribute('style');
  639. document.body.removeAttribute('style');
  640. const SELECTOR = [...document.querySelectorAll('h3')].filter(element => element.textContent.includes('Whitelist SFGATE to keep reading') );
  641. if (SELECTOR.length > 0) SELECTOR[0].parentNode.parentNode.parentNode.parentNode.remove();
  642. }
  643. function Vulture() {
  644. CommonRemovalItems(deleteIframes);
  645. document.querySelectorAll('.paywall-reader-interface').forEach(function(element) { element.remove(); })
  646. document.querySelectorAll('#cliff-takeover').forEach(function(element) { element.remove(); })
  647. document.querySelectorAll('.tertiary').forEach(function(element) { element.setAttribute('style',''); })
  648. if (document.querySelector('.ad_static') !== null)document.querySelector('.ad_static').remove();
  649. if (document.querySelector('.zephr-overlay') !== null) document.querySelector('.zephr-overlay').remove();
  650. if (document.querySelector('#zephr-zone-footer') !== null) document.querySelector('#zephr-zone-footer').remove();
  651. if (document.querySelector('[data-concert-ads-name]') !== null)document.querySelector('[data-concert-ads-name]').remove();
  652. document.querySelector('body').removeAttribute('style');
  653. }
  654. function WashingtonPost(isLooped) {
  655. document.querySelector('html').removeAttribute('style');
  656. document.body.removeAttribute('style');
  657. document.querySelectorAll('[as="script"]').forEach(function(element) { element.remove(); })
  658. document.querySelectorAll('#wall-bottom-drawer').forEach(function(element) { element.remove(); })
  659. document.querySelectorAll('[id*="regwall-"]').forEach(function(element) { element.remove(); })
  660.  
  661. document.querySelectorAll('[data-qa*="paywall"]').forEach(function(element) { element.remove(); })
  662. document.querySelectorAll('[rel*="apple-touch-icon"]').forEach(function(element) { element.remove(); })
  663.  
  664. document.querySelectorAll('.teaser-content').forEach(function(element) { element.classList.remove('teaser-content'); })
  665. document.querySelectorAll('.article-body').forEach(function(element) {
  666. element.classList.remove('article-body');
  667. element.classList.add('a-body-cloned');
  668. element.classList.remove('grid-body');
  669. element.removeAttribute('data-qa');
  670. })
  671. document.querySelectorAll('p[data-qa]').forEach(function(element) {
  672. element.removeAttribute('data-qa');
  673. element.removeAttribute('data-el');
  674. element.removeAttribute('class');
  675. })
  676.  
  677. document.querySelectorAll('.a-body-cloned').forEach(function(element) { element.removeAttribute('style'); })
  678.  
  679. if (typeof isLooped !== 'undefined') {
  680. if (!isLooped) {
  681. const CONTENT_ELEMENT = document.createElement('style');
  682. CONTENT_ELEMENT.innerHTML = `.grid-body { max-width: unset; font-family: var(--wpds-fonts-body); color: var(--wpds-colors-gray40); margin: 0; padding-bottom: var(--wpds-space-150); line-height: var(--wpds-lineHeights-160); }
  683. .a-body-cloned p { font-size: 1.25rem; margin-bottom: 15px; }`;
  684. if (document.querySelector('.grid-body') !== null) document.querySelector('.grid-body').prepend(CONTENT_ELEMENT);
  685. }
  686. }
  687. }
  688.  
  689. // 4. PROCESSING AND WRAP-UP
  690. function domStatusCheck() {
  691. if (STANDARD_DOMAINS.find(url => url === URL_HOSTNAME))
  692. StandardRemoval();
  693.  
  694. if (AUXILIARY_DOMAINS.find(url => url === URL_HOSTNAME))
  695. {
  696. switch(URL_HOSTNAME)
  697. {
  698. case DOMAIN.GamesRadarAuxiliary:
  699. if (typeof currentStatus2 !== 'undefined')
  700. GamesRadar(currentStatus2);
  701. else
  702. GamesRadar();
  703.  
  704. break;
  705. }
  706. }
  707.  
  708. if (ABNORMAL_DOMAINS.find(url => url === URL_HOSTNAME))
  709. {
  710. switch(URL_HOSTNAME)
  711. {
  712. case DOMAIN.CommonSenseMedia: CommonSenseMedia(); break;
  713. case DOMAIN.DailyMail: DailyMail(); break;
  714. case DOMAIN.EuroGamer: EuroGamer(); break;
  715. case DOMAIN.Fortune: Fortune(); break;
  716. case DOMAIN.FoxBusiness: FoxBusiness(); break;
  717. case DOMAIN.FoxNews: FoxNews(); break;
  718. case DOMAIN.GameRant: GameRant(); break;
  719. case DOMAIN.Insider: Insider(); break;
  720. case DOMAIN.LeMonde: LeMonde(); break;
  721. case DOMAIN.MakeUseOf: MakeUseOf(); break;
  722. case DOMAIN.MetroUK: MetroUK(); break;
  723. case DOMAIN.NBCNews: NBCNews(); break;
  724. case DOMAIN.NYMag: NYMag(); break;
  725. case DOMAIN.RottenTomatoes: RottenTomatoes(); break;
  726. case DOMAIN.SFGate: SFGate(); break;
  727. case DOMAIN.TheGuardian: TheGuardian(isLooped); break;
  728. case DOMAIN.WashingtonPost: WashingtonPost(isLooped); break;
  729. }
  730. isLooped = true;
  731. }
  732.  
  733. RemoveHtmlComments();
  734. }
  735.  
  736. function sledgeHammerRemoval() {
  737. const REPEAT_INTERVAL = 1500; // 1.5 seconds
  738. switch (URL_HOSTNAME)
  739. {
  740. case DOMAIN.CNN: SuccessRemovalMessage(); setTimeout(function() { CNN(); }, REPEAT_INTERVAL); break;
  741. case DOMAIN.Curbed: SuccessRemovalMessage(); setTimeout(function() { Curbed(); }, REPEAT_INTERVAL); break;
  742. case DOMAIN.CNBC: SuccessRemovalMessage(); setTimeout(function() { CNBC(); }, REPEAT_INTERVAL); break;
  743. case DOMAIN.TheDailyBeast: SuccessRemovalMessage(); setTimeout(function() { TheDailyBeast(); }, REPEAT_INTERVAL); break;
  744. case DOMAIN.HoustonChronicle: SuccessRemovalMessage(); setTimeout(function() { HoustonChronicle(); }, REPEAT_INTERVAL); break;
  745. case DOMAIN.KelleyBlueBook: SuccessRemovalMessage(); setTimeout(function() { KelleyBlueBook(); }, REPEAT_INTERVAL); break;
  746. case DOMAIN.MedPageToday: SuccessRemovalMessage(); setTimeout(function() { MedPageToday(); }, REPEAT_INTERVAL); break;
  747. case DOMAIN.NewYorkTimes: SuccessRemovalMessage(); setTimeout(function() { NewYorkTimes(); }, REPEAT_INTERVAL); break;
  748. case DOMAIN.NewYorkTimesCooking: SuccessRemovalMessage(); setTimeout(function() { NewYorkTimes(); }, REPEAT_INTERVAL); break;
  749. case DOMAIN.RottenTomatoes: SuccessRemovalMessage(); setTimeout(function() { RottenTomatoes(); }, REPEAT_INTERVAL); break;
  750. case DOMAIN.RottenTomatoesEditorial: SuccessRemovalMessage(); setTimeout(function() { RottenTomatoesEditorial(); }, REPEAT_INTERVAL); break;
  751. case DOMAIN.TheCut: SuccessRemovalMessage(); setTimeout(function() { TheCut(); }, REPEAT_INTERVAL); break;
  752. case DOMAIN.Vulture: SuccessRemovalMessage(); setTimeout(function() { Vulture(); }, REPEAT_INTERVAL); break;
  753. }
  754. isLooped = true;
  755. }
  756.  
  757. if (OkayToUseSledgeHammerRemoval()) sledgeHammerRemoval();
  758.  
  759. function displayMessage(domain) {
  760. return console.log(`%c 🚦 Assassinate Ad Block Blockers Clear interval pass for ${ domain } then pause for a few seconds...`, 'background: #FFBF01; color: #222;');
  761. }
  762.  
  763. // Periodicially clear everything and pause for a few seconds, then start again. Not as agreesive as Sledgehammer function
  764. function clearAllIntervals() {
  765. if (URL_HOSTNAME === DOMAIN.TheGuardian)
  766. SuccessRemovalMessage(300);
  767. else
  768. SuccessRemovalMessage();
  769.  
  770. setTimeout(function() {
  771. console.clear();
  772.  
  773. if (URL_HOSTNAME != DOMAIN.TheDailyBeast)
  774. {
  775. switch(URL_HOSTNAME)
  776. {
  777. case DOMAIN.CommonSenseMedia: displayMessage(DOMAIN.CommonSenseMedia); CommonSenseMedia(); break;
  778. case DOMAIN.TheCut: displayMessage(DOMAIN.TheCut); TheCut(); break;
  779. case DOMAIN.DailyMail: displayMessage(DOMAIN.DailyMail); DailyMail(); break;
  780. case DOMAIN.EuroGamer: displayMessage(DOMAIN.EuroGamer); EuroGamer(); break;
  781. case DOMAIN.FoxBusiness: displayMessage(DOMAIN.FoxBusiness); FoxBusiness(); break;
  782. case DOMAIN.FoxNews: displayMessage(DOMAIN.FoxNews); FoxNews(); break;
  783. case DOMAIN.Fortune: displayMessage(DOMAIN.Fortune); Fortune(); break;
  784. case DOMAIN.GameRant: displayMessage(DOMAIN.GameRant); GameRant(); break;
  785. case DOMAIN.TheGuardian: displayMessage(DOMAIN.TheGuardian); TheGuardian(isLooped); break;
  786. case DOMAIN.Insider: displayMessage(DOMAIN.Insider); Insider(); break;
  787. case DOMAIN.LeMonde: displayMessage(DOMAIN.LeMonde); Insider(); break;
  788. case DOMAIN.MakeUseOf: displayMessage(DOMAIN.MakeUseOf); MakeUseOf(); break;
  789. case DOMAIN.MetroUK: displayMessage(DOMAIN.MetroUK); MetroUK(); break;
  790. case DOMAIN.NBCNews: displayMessage(DOMAIN.NBCNews); NBCNews(); break;
  791. case DOMAIN.NYMag: displayMessage(DOMAIN.NYMag); NYMag(); break;
  792. case DOMAIN.SFGate: displayMessage(DOMAIN.SFGate); SFGate(); break;
  793. case DOMAIN.WashingtonPost: displayMessage(DOMAIN.WashingtonPost); WashingtonPost(isLooped); break;
  794. }
  795.  
  796. clearInterval('SledgehammerRemoval');
  797. console.log('%c 👍 Assassinate Ad Block Blockers — Sledgehammer interval cleared', 'background: #0b801d; color: #fff;');
  798. }
  799.  
  800. currentStatus1 = currentStatus1 === undefined ? undefined : currentStatus1;
  801. currentStatus2 = currentStatus2 === undefined ? undefined : currentStatus2;
  802. currentStatus3 = currentStatus3 === undefined ? undefined : currentStatus3;
  803. currentStatus4 = currentStatus4 === undefined ? undefined : currentStatus4;
  804. currentStatus5 = currentStatus5 === undefined ? undefined : currentStatus5;
  805. currentStatus6 = currentStatus6 === undefined ? undefined : currentStatus6;
  806. currentStatus7 = currentStatus7 === undefined ? undefined : currentStatus7;
  807. currentStatus8 = currentStatus8 === undefined ? undefined : currentStatus8;
  808. currentStatus9 = currentStatus9 === undefined ? undefined : currentStatus9;
  809. currentStatus10 = currentStatus10 === undefined ? undefined : currentStatus10;
  810. CI = CI === undefined ? undefined : CI;
  811.  
  812. console.log('%c 😎 Assassinate Ad Block Blockers — All intervals cleared', 'background: #0b801d; color: #fff;');
  813.  
  814. document.querySelectorAll('#Injected-By-Assassinate-Ad-Block-Blockers').forEach(function(element) { element.remove(); })
  815. }, 1500); // Wait 1.5 seconds for the success animation to finish
  816. }
  817.  
  818. const PROCESSING_MESSAGE = 'The Assassinate Ad Block Blockers script is doing its jobs. Please wait a few seconds. 🚦';
  819.  
  820. if (URL_HOSTNAME === DOMAIN.TheGuardian)
  821. StartingRemovalMessage(PROCESSING_MESSAGE, 300);
  822. else
  823. StartingRemovalMessage(PROCESSING_MESSAGE);
  824.  
  825. // Sets up listeners to supercede any blocker shenanigans
  826. if (STANDARD_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus1 = setTimeout(domStatusCheck, 50); // deepscan-disable-line
  827. if (AUXILIARY_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus2 = setTimeout(domStatusCheck, 50); // deepscan-disable-line
  828.  
  829. // Second pass after 1.5 seconds
  830. if (STANDARD_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus3 = setTimeout(domStatusCheck, 1500); // deepscan-disable-line
  831. if (ABNORMAL_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus4 = setTimeout(domStatusCheck, 1500); // deepscan-disable-line
  832.  
  833. // Third pass after 2.5 seconds
  834. if (STANDARD_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus5 = setTimeout(domStatusCheck, 2500); // deepscan-disable-line
  835. if (ABNORMAL_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus6 = setTimeout(domStatusCheck, 2500); // deepscan-disable-line
  836.  
  837. // Fourth pass after 5.5 seconds
  838. if (STANDARD_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus7 = setTimeout(domStatusCheck, 5500); // deepscan-disable-line
  839. if (ABNORMAL_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus8 = setTimeout(domStatusCheck, 5500); // deepscan-disable-line
  840.  
  841. // Fifth pass after 7 seconds
  842. if (STANDARD_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus9 = setTimeout(domStatusCheck, 7000); // deepscan-disable-line
  843. if (ABNORMAL_DOMAINS.find(url => url === URL_HOSTNAME)) currentStatus10 = setTimeout(domStatusCheck, 7000); // deepscan-disable-line
  844.  
  845. // Last-pass guarantee after 7.05 seconds (We want this to fire immediately after the fifth pass)
  846. let CI = setTimeout(clearAllIntervals, 7050);
  847.  
  848. // Perpetual check and removal every 2.5 seconds - The Peter Gabriel Sledgehammer Special
  849. if (OkayToUseSledgeHammerRemoval()) setInterval(sledgeHammerRemoval, 2500);
  850.  
  851. console.clear();
  852. }