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 UNIVERSAL like AdBlock Plus. It operates on a per-site basis.

当前为 2022-05-07 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Assassinate Ad Block Blockers
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.49
  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 UNIVERSAL like AdBlock Plus. It operates on a per-site basis.
  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 *://www.vg247.com/*
  10. // @match *://www.businessinsider.com/*
  11. // @match *://www.cnn.com/*
  12. // @match *://www.curbed.com/*
  13. // @match *://*.dailymail.co.uk/*
  14. // @match *://www.eurogamer.net/*
  15. // @match *://www.forbes.com/*
  16. // @match *://*.fortune.com/*
  17. // @match *://www.gamesradar.com/*
  18. // @match *://www.houstonchronicle.com/*
  19. // @match *://www.inquirer.com/*
  20. // @match *://*.insider.com/*
  21. // @match *://*.latimes.com/*
  22. // @match *://www.makeuseof.com/*
  23. // @match *://markets.businessinsider.com/*
  24. // @match *://metro.co.uk/*
  25. // @match *://*.nationalgeographic.com/*
  26. // @match *://www.nbcnews.com/*
  27. // @match *://*.nymag.com/*
  28. // @match *://*.nytimes.com/*
  29. // @match *://www.rottentomatoes.com/*
  30. // @match *://*.sfchronicle.com/*
  31. // @match *://www.thecut.com/*
  32. // @match *://www.thedailybeast.com/*
  33. // @match *://www.usatoday.com/*
  34. // @match *://www.vulture.com/*
  35. // @match *://*.washingtonpost.com/*
  36. // ==/UserScript==
  37.  
  38. /* jshint esversion: 6 */
  39. /* eslint-disable */
  40.  
  41. // Loads jQuery and triggers a callback function when jQuery has finished loading
  42. function addJQuery(callback) {
  43. let script = document.createElement('script');
  44. script.setAttribute('src', '//ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js');
  45. script.addEventListener('load', function() { callback(); }, false);
  46. document.body.appendChild(script);
  47. }
  48.  
  49. // The main script
  50. function main() {
  51.  
  52. let currentStatus1, currentStatus2, currentStatus3, currentStatus4,
  53. currentStatus5, currentStatus6, currentStatus7, currentStatus8,
  54. currentStatus9, currentStatus10;
  55. let okayToProcess = true;
  56.  
  57. const $ = (unsafeWindow || window).$;
  58. const URL_HOSTNAME = window.location.hostname;
  59.  
  60. // For domains that uses a specific service blocking AdBlockers
  61. const STANDARD_BLOCKER_DOMAINS = [ 'www.vg247.com',
  62. 'www.gamesradar.com',
  63. 'www.cnn.com'].map(String);
  64.  
  65. // For domains that follow a nonstandard or custom way of blocking AdBlockers
  66. const ABNORMAL_BLOCKER_DONAINS = [ 'www.makeuseof.com',
  67. 'www.businessinsider.com',
  68. 'www.thedailybeast.com',
  69. 'www.nytimes.com',
  70. 'cooking.nytimes.com',
  71. 'www.forbes.com',
  72. 'www.dailymail.co.uk',
  73. 'www.washingtonpost.com',
  74. 'www.insider.com',
  75. 'www.latimes.com',
  76. 'www.nationalgeographic.com',
  77. 'www.sfchronicle.com',
  78. 'seekingalpha.com',
  79. 'www.eurogamer.net',
  80. 'www.usatoday.com',
  81. 'markets.businessinsider.com',
  82. 'www.vulture.com',
  83. 'nymag.com',
  84. 'www.thecut.com',
  85. 'www.curbed.com',
  86. 'metro.co.uk',
  87. 'fortune.com',
  88. 'www.nbcnews.com',
  89. 'www.inquirer.com',
  90. 'www.houstonchronicle.com',
  91. 'www.rottentomatoes.com'].map(String);
  92.  
  93. // For domains that typically launch third-party modals for random stuff like sign-ups
  94. const AUXILIARY_BLOCKER_DOMAINS = [ 'www.gamesradar.com'].map(String);
  95.  
  96. const DOMAIN = {
  97. 'BusinessInsider': ABNORMAL_BLOCKER_DONAINS[1],
  98. 'BusinessInsiderMarkets': ABNORMAL_BLOCKER_DONAINS[15],
  99. 'CNN': STANDARD_BLOCKER_DOMAINS[2],
  100. 'Curbed': ABNORMAL_BLOCKER_DONAINS[19],
  101. 'DailyMail': ABNORMAL_BLOCKER_DONAINS[6],
  102. 'EuroGamer': ABNORMAL_BLOCKER_DONAINS[13],
  103. 'Forbes': ABNORMAL_BLOCKER_DONAINS[5],
  104. 'Fortune': ABNORMAL_BLOCKER_DONAINS[21],
  105. 'GamesRadar': STANDARD_BLOCKER_DOMAINS[1],
  106. 'GamesRadarAuxiliary': AUXILIARY_BLOCKER_DOMAINS[0],
  107. 'HoustonChronicle': ABNORMAL_BLOCKER_DONAINS[24],
  108. 'Inquirer': ABNORMAL_BLOCKER_DONAINS[23],
  109. 'Insider': ABNORMAL_BLOCKER_DONAINS[8],
  110. 'LATimes': ABNORMAL_BLOCKER_DONAINS[9],
  111. 'MakeUseOf': ABNORMAL_BLOCKER_DONAINS[0],
  112. 'MetroUK': ABNORMAL_BLOCKER_DONAINS[20],
  113. 'NationalGeographic': ABNORMAL_BLOCKER_DONAINS[10],
  114. 'NBCNews': ABNORMAL_BLOCKER_DONAINS[22],
  115. 'NewYorkTimes': ABNORMAL_BLOCKER_DONAINS[3],
  116. 'NewYorkTimesCooking': ABNORMAL_BLOCKER_DONAINS[4],
  117. 'NYMag': ABNORMAL_BLOCKER_DONAINS[17],
  118. 'RottenTomatoes': ABNORMAL_BLOCKER_DONAINS[25],
  119. 'SeekingAlpha': ABNORMAL_BLOCKER_DONAINS[12],
  120. 'SFChronicle': ABNORMAL_BLOCKER_DONAINS[11],
  121. 'TheCut': ABNORMAL_BLOCKER_DONAINS[18],
  122. 'TheDailyBeast': ABNORMAL_BLOCKER_DONAINS[2],
  123. 'USAToday': ABNORMAL_BLOCKER_DONAINS[14],
  124. 'VG247': STANDARD_BLOCKER_DOMAINS[0],
  125. 'Vulture': ABNORMAL_BLOCKER_DONAINS[16],
  126. 'WashingtonPost': ABNORMAL_BLOCKER_DONAINS[7],
  127. }
  128.  
  129. function startingRemovalMessage(message) {
  130. $('body').prepend(`<div id="Injected-By-Assassinate-Ad-Block-Blockers" style="background-color: #D8070E; font-weight: bold; color: white; text-align: center; margin: auto; padding: 10px; position: relative; z-index: 9999999999 !important; top: 220px;"><style>#Injected-By-Assassinate-Ad-Block-Blockers img { width: unset; }</style><img src="https://i.imgur.com/velCxDX.gif" style="display: inline-block; vertical-align: middle;" /> <span>${ message }</span></div>`);
  131. }
  132.  
  133. function successRemovalMessage() {
  134. $('#Injected-By-Assassinate-Ad-Block-Blockers').attr('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: 220px;');
  135. $('#Injected-By-Assassinate-Ad-Block-Blockers').find('img').attr('src','https://i.imgur.com/i5e5xp0.gif');
  136. $('#Injected-By-Assassinate-Ad-Block-Blockers').find('span').text('Success 😎. Enjoy!');
  137. }
  138.  
  139. function clearCookie(name, domain, path){
  140. domain = domain || document.domain;
  141. path = path || "/";
  142. document.cookie = name + "=; expires=" + + new Date() + "; domain=" + domain + "; path=" + path;
  143. }
  144.  
  145. /* A utility function, for Greasemonkey scripts, that detects and handles DOM mutation.
  146. * Author: https://gist.github.com/BrockA/2625891
  147. * License: Creative Commons, Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
  148. *
  149. * Dependency: jQuery
  150. * Usage example:
  151. * waitForKeyElements (
  152. * "div.comments", commentCallbackFunction
  153. * );
  154. *
  155. * Page-specific function to do what we want when the node is found.
  156. * Usage example:
  157. * function commentCallbackFunction (jNode) {
  158. * jNode.text ("This comment changed by waitForKeyElements().");
  159. * }
  160. *
  161. * selectorTxt <string> Required: The jQuery selector string that specifies the desired element(s).
  162. * actionFunction <string> Required: The code to run when elements are found. It is passed a jNode to the matched element.
  163. * bWaitOnce <bool> Optional: If false, will continue to scan for new elements even after the first match is found.
  164. * iframeSelector <string> Optional: If set, identifies the iframe to search.
  165. */
  166. function waitForTargetElements (selectorTxt, actionFunction, bWaitOnce, iframeSelector) {
  167. let targetNodes, btargetsFound;
  168.  
  169. if (typeof iframeSelector == "undefined")
  170. targetNodes = $(selectorTxt);
  171. else
  172. targetNodes = $(iframeSelector).contents().find(selectorTxt);
  173.  
  174. if (targetNodes && targetNodes.length > 0) {
  175. btargetsFound = true;
  176. // Target node(s) found. Iterate through each and act if they are new.
  177. targetNodes.each ( function () {
  178. let jThis = $(this);
  179. let alreadyFound = jThis.data ('alreadyFound') || false;
  180.  
  181. if (!alreadyFound) {
  182. // Call the payload function
  183. let cancelFound = actionFunction (jThis);
  184. if (cancelFound)
  185. btargetsFound = false;
  186. else
  187. jThis.data ('alreadyFound', true);
  188. }
  189. });
  190. } else {
  191. btargetsFound = false;
  192. }
  193.  
  194. // Get the timer-control variable for this selector
  195. let controlObj = waitForTargetElements.controlObj || {};
  196. let controlKey = selectorTxt.replace (/[^\w]/g, "_");
  197. let timeControl = controlObj [controlKey];
  198.  
  199. // Now set or clear the timer as appropriate
  200. if (btargetsFound && bWaitOnce && timeControl) {
  201. // The only condition where we need to clear the timer
  202. clearInterval (timeControl);
  203. delete controlObj [controlKey];
  204. } else {
  205. // Set a timer, if needed
  206. if ( ! timeControl) {
  207. timeControl = setInterval ( function () {
  208. waitForTargetElements ( selectorTxt, actionFunction, bWaitOnce, iframeSelector);
  209. }, 300);
  210. controlObj [controlKey] = timeControl;
  211. }
  212. }
  213. waitForTargetElements.controlObj = controlObj;
  214. }
  215.  
  216. // Sledgehammer 2.0 prototype
  217. function removeDOMElement(node) { node.remove(); }
  218. function removeContentHeightLock(node) { node.attr('style','max-height: unset; overflow: unset;'); }
  219.  
  220. // General
  221. function standardRemoval() {
  222. let isHTMLBlocked = $('html').attr('style');
  223. let isBodyBlocked = $('body').attr('style');
  224. let isHTMLClassBlocked = $('html').hasClass('sp-message-open');
  225.  
  226. if (isHTMLBlocked !== undefined || isBodyBlocked !== undefined || isHTMLClassBlocked)
  227. {
  228. clearInterval(currentStatus1);
  229. // We're on a page that is blocked
  230.  
  231. $('html').removeAttr('style');
  232. $('body').removeAttr('style');
  233. $('html').removeClass('sp-message-open');
  234.  
  235. switch(URL_HOSTNAME)
  236. {
  237. case DOMAIN.VG247:
  238. $('[class*="sp_veil"]').remove();
  239. $('[id*="sp_message_id"]').remove();
  240. break;
  241. }
  242. }
  243.  
  244. console.clear();
  245. }
  246.  
  247. // Site specific
  248. function BusinessInsider() {
  249. $('.tp-modal').remove();
  250. $('.tp-backdrop').remove();
  251. $('body').removeClass('tp-modal-open');
  252. }
  253. function Curbed() {
  254. $('html').attr('style', 'overflow-y: unset;');
  255. $('body').attr('style', 'position: unset; width: 1100px; margin: 0 auto;');
  256. $('.article .article-header, .article .article-header.inline').attr('style', 'margin: unset;');
  257. $('.article .lede-image-wrapper.inline.horizontal').attr('style', 'margin: unset;');
  258. $('#paywall-reader-interface').remove();
  259. $('#cliff-takeover').remove();
  260. $('.tertiary').attr('style','');
  261. }
  262. function DailyMail() {
  263. $('#mol-ads-cmp-iframe').next().remove();
  264. $('html').removeAttr('class');
  265. $('body').removeAttr('class');
  266. }
  267. function EuroGamer() {
  268. $('html').removeAttr('style');
  269. $('html').removeClass('sp-message-open');
  270. $('body').removeAttr('style');
  271. $('[class*="sp_veil"]').remove();
  272. $('[id*="sp_message_id"]').remove();
  273. }
  274. function Forbes() {
  275. $('.top-ad-container').remove();
  276. $('.tp-modal').remove();
  277. $('.tp-backdrop.tp-active').remove();
  278. $('body').removeAttr('class');
  279. $('.page-loaded').remove();
  280. $('.article-fixed[_nghost-c11]').attr('style', 'position: unset;');
  281. // abnormal situation. these appear on certain pages.
  282. $('#lightboxjs-lightboxlib').remove();
  283. $('#aax_prefetch_frame').remove();
  284. $('#cok_aax').remove();
  285. $('body > iframe:nth-of-type(1)').remove(); // these run in sequence. we want to remove the first 7-9 iframes since iframes typically contain ABB-related injection code or advertisements.
  286. $('body > iframe:nth-of-type(1)').remove();
  287. $('body > iframe:nth-of-type(1)').remove();
  288. $('body > iframe:nth-of-type(1)').remove();
  289. $('body > iframe:nth-of-type(1)').remove();
  290. $('body > iframe:nth-of-type(1)').remove();
  291. $('.fbs-auth__container').remove();
  292. $('.fbs-ad--ntv-contentd-wrapper').remove();
  293. $('.body--no-scroll').attr('style', 'overflow: unset;');
  294. $.each($('script'), function() { // scans all scripts for a very specific paywall script
  295. let selector = $(this).attr('src');
  296. let target = String(selector).match(/(paywall)+.(unlock-protocol)+./g); // the script is found
  297. if (target !== null)
  298. $(this).remove(); // and removed so that it can't re-inject itself
  299. });
  300. $('#article-container-0').attr('style','position: unset;');
  301. }
  302. function Fortune() {
  303. $('[id*="Leaderboard"]').parent().remove();
  304. $('.paywall-selector').remove();
  305. $('[class*="paywall"]').attr('style','');
  306. $.each($('[class*="articleBody__wrapper-"]').find('div'), function() {
  307. const ATTR = $(this).attr('style');
  308. if (typeof ATTR != 'undefined' && ATTR !== false && ATTR.includes('grayscale(0.5) blur'))
  309. $(this).attr('style','');
  310. });
  311. }
  312. function GamesRadar(interval) {
  313. if ($('.raleigh-optin-visible').is(':visible'))
  314. $('[class*="raleigh-optin-"]').remove();
  315.  
  316. if (typeof interval !== 'undefined')
  317. clearInterval(interval);
  318. else
  319. clearAllIntervals();
  320. }
  321. function HoustonChronicle() {
  322. $('script').remove();
  323. $('iframe').remove();
  324. $('.fancybox-overlay').remove();
  325. $('.fancybox-lock').removeClass('fancybox-lock');
  326. $('.bc_header').remove();
  327. $.each($('style:last-child'), function() {
  328. if ($(this).attr('id') !== '') {
  329. $(this).remove();
  330. }
  331. });
  332. }
  333. function Inquirer() {
  334. $('.tp-modal').remove();
  335. $('.tp-backdrop').remove();
  336. $('body').attr('class','');
  337. $('.bx-base').remove();
  338. }
  339. function Insider() {
  340. $('.tp-modal').remove();
  341. $('.tp-backdrop.tp-active').remove();
  342. $('body').removeAttr('class');
  343. }
  344. function LATimes() {
  345. $('html').attr('style','overflow: unset;');
  346. $('body').removeAttr('style');
  347. $('.Page-body').removeAttr('style');
  348. $('.fc-ab-root').remove();
  349. $('.meter-modal').parent().remove();
  350. $('metering-modal').remove();
  351. }
  352. function MakeUseOf() {
  353. $('[class*="unblockplease-overlay"]').remove();
  354. $('.unblockplease').removeAttr('style');
  355. }
  356. function MetroUK() {
  357. $('script').remove();
  358. $('iframe').remove();
  359. $('[class*="mol-ads-"]').remove();
  360. $('[id*="mol-ads-"]').remove();
  361. $('[class*="overlay-34_Kj"]').parent().parent().remove();
  362. $('body').removeClass('mol-fe-ab-dialog');
  363. }
  364. function NationalGeographic() {
  365. $('.fancybox-overlay').remove();
  366. $('#paywall-meter').remove();
  367. $('html').removeClass('fancybox-lock');
  368. $('body').removeAttr('style');
  369. $('.Modal.PaywallModal').remove();
  370. $('.Modal.EmailStickyFooter__Modal').parent().parent().remove();
  371.  
  372. $('#Injected-By-Assassinate-Ad-Block-Blockers').remove();
  373. console.clear();
  374. console.log('%c 😎 Assassinate Ad Block Blockers — Blocker code removed', 'background: #0b801d; color: #fff;');
  375. }
  376. function NBCNews() {
  377. $('html').attr('style','');
  378. $('body').attr('style','');
  379. $.each($('h3'), function() {
  380. const str = $(this).text();
  381. if (~str.indexOf('Please support our journalism')) {
  382. $(this).parent().parent().parent().parent().remove();
  383. }
  384. });
  385. }
  386. function NewYorkTimes() {
  387. // nytimes
  388. if (window.location.pathname.includes('/slideshow/')) {
  389. if (okayToProcess) {
  390. $('#gateway-content').remove();
  391. $('div#app > div > div > [class*="css-"]:last-child').remove();
  392. okayToProcess = false;
  393. }
  394. } else {
  395. $('#standalone-footer').remove();
  396. $('#gateway-content').remove();
  397. $('body').attr('style', 'overflow: unset;');
  398. $('#site-content').attr('style','position: unset;');
  399. $('[id*="lire-ui-"]').remove();
  400.  
  401. // nytimes' cooking
  402. $('[class*="modal_modal-window-container"]').parent().remove();
  403. $('body').attr('class','').attr('style','');
  404. $('[class*="mask_no-scroll"]').attr('class','');
  405. $('.nytc---modal-window---windowContainer').parents('#appContainer').remove(); // a modal with no close button. wtf nyt?!
  406. $('#container').attr('style','overflow: unset;');
  407. $('.nytc---modal-window---noScroll').attr('style','overflow: unset;');
  408. $('#site-content').attr('style','position: unset;');
  409.  
  410. // nytimes' magazine and site-wide
  411. $('[class*="css-mcm"]').attr('style','position: unset;');
  412.  
  413. if (window.location.pathname !== '/')
  414. $('div#app > div > div > [class*="css-"]:last-child').remove();
  415. }
  416. }
  417. function NYMag() {
  418. $('html').removeAttr('style');
  419. $('body').removeAttr('style');
  420. $('#paywall-reader-interface').remove();
  421. }
  422. function RottenTomatoes() {
  423. $('html').attr('style','');
  424. $('body').attr('style','');
  425. $.each($('h3'), function() {
  426. const str = $(this).text();
  427. if (~str.indexOf('Welcome to Rotten Tomatoes! Please support us by allowing ads')) {
  428. $(this).parent().parent().parent().parent().remove();
  429. }
  430. });
  431. }
  432. function SeekingAlpha() {
  433. $('body').removeAttr('style');
  434. $('[src*="chunk.SignInButton"]').prev().remove();
  435. $('.sticky-piano-placeholder').remove();
  436. waitForTargetElements('[data-test-id="article-content"]', removeContentHeightLock);
  437. waitForTargetElements('#paywall', removeDOMElement);
  438. waitForTargetElements('[src*="rollBar"]', removeDOMElement);
  439. waitForTargetElements('[src*="//js-sec.indexww.com/ht/p"]', removeDOMElement);
  440. waitForTargetElements('#px-captcha', removeDOMElement);
  441. waitForTargetElements('#px-captcha-wrapper', removeDOMElement);
  442.  
  443. $('#google-one-tap-popup-container').remove();
  444.  
  445. // Final pass removal - requires murdering cookies! :o
  446. var cookies = document.cookie.split(";");
  447. for (let key in cookies)
  448. clearCookie(cookies[key].split("=")[0], URL_HOSTNAME, '/');
  449. }
  450. function SFChronicle() {
  451. // version 1
  452. $('.fancybox-overlay').remove();
  453. $('html').removeAttr('class');
  454. $('.bcSlideOut').remove();
  455. $('body').attr('style', 'overflow: unset !important;');
  456.  
  457. // version 2
  458. $('script').remove();
  459. $('iframe').remove();
  460. $('.fancybox-lock').removeClass('fancybox-lock');
  461. $('.bc_header').remove();
  462. $('html').css('overflow', 'unset');
  463. $.each($('style:last-child'), function() {
  464. if ($(this).attr('id') !== '') {
  465. $(this).remove();
  466. }
  467. });
  468. }
  469. function TheCut() {
  470. $('html').removeAttr('style');
  471. $('body').removeAttr('style');
  472. $('#paywall-reader-interface').remove();
  473. $('#cliff-takeover').remove();
  474. $('.tertiary').attr('style','');
  475. }
  476. function TheDailyBeast() {
  477. $('.tp-modal').remove();
  478. $('.tp-backdrop').remove();
  479. $('body').removeClass('tp-modal-open');
  480. $('[id*="offer-0-"]').remove();
  481. $('[displayname*="PianoTag"]').remove();
  482. $('[src*="tinypass.min.js"]').remove();
  483. $('#piano_bottom_ribbon_wrapper').remove();
  484. $('iframe').remove();
  485. $('body').removeAttr('style');
  486. $('#bottom_ribbon_modal_wrapper').remove();
  487.  
  488. $('#Injected-By-Assassinate-Ad-Block-Blockers').remove();
  489. console.clear();
  490. console.log('%c 😎 Assassinate Ad Block Blockers — Blocker code removed', 'background: #0b801d; color: #fff;');
  491. }
  492. function USAToday() {
  493. $('html').removeAttr('style');
  494. $('html').removeClass('sp-message-open');
  495. $('body').removeAttr('style');
  496. $('[class*="sp_veil"]').remove();
  497. $('[id*="sp_message_id"]').remove();
  498. }
  499. function Vulture() {
  500. $('html').removeAttr('style');
  501. $('body').removeAttr('style');
  502. $('#paywall-reader-interface').remove();
  503. $('#cliff-takeover').remove();
  504. $('.tertiary').attr('style','');
  505. }
  506. function WashingtonPost() {
  507. $('html').removeAttr('style');
  508. $('body').removeAttr('style');
  509. $('[data-qa*="paywall"]').remove();
  510. $('[rel*="apple-touch-icon"]').last().next().next().remove(); // removes the blocker html
  511. $('[rel*="apple-touch-icon"]').last().next().next().remove(); // removes the blocker styles
  512. waitForTargetElements('[id*="paywall-us-"]', removeDOMElement);
  513. }
  514.  
  515. function domStatusCheck() {
  516. if (STANDARD_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1)
  517. standardRemoval();
  518.  
  519. if (AUXILIARY_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1)
  520. {
  521. switch(URL_HOSTNAME)
  522. {
  523. case DOMAIN.GamesRadarAuxiliary:
  524. if (typeof currentStatus2 !== 'undefined')
  525. GamesRadar(currentStatus2);
  526. else
  527. GamesRadar();
  528.  
  529. break;
  530. }
  531. }
  532.  
  533. if (ABNORMAL_BLOCKER_DONAINS.indexOf(URL_HOSTNAME) > -1)
  534. {
  535. switch(URL_HOSTNAME)
  536. {
  537. case DOMAIN.BusinessInsider: BusinessInsider(); break;
  538. case DOMAIN.BusinessInsiderMarkets: BusinessInsider(); break;
  539. case DOMAIN.Curbed: Curbed(); false;
  540. case DOMAIN.DailyMail: DailyMail(); break;
  541. case DOMAIN.EuroGamer: EuroGamer(); break;
  542. case DOMAIN.Forbes: Forbes(); break;
  543. case DOMAIN.Fortune: Fortune(); break;
  544. case DOMAIN.Insider: Insider(); break;
  545. case DOMAIN.LATimes: LATimes(); break;
  546. case DOMAIN.MakeUseOf: MakeUseOf(); break;
  547. case DOMAIN.MetroUK: MetroUK(); break;
  548. case DOMAIN.NBCNews: NBCNews(); break;
  549. case DOMAIN.NewYorkTimes: NewYorkTimes(); break;
  550. case DOMAIN.NewYorkTimesCooking: NewYorkTimes(); break;
  551. case DOMAIN.NYMag: NYMag(); break;
  552. case DOMAIN.RottenTomatoes: RottenTomatoes(); break;
  553. case DOMAIN.TheCut: TheCut(); break;
  554. case DOMAIN.USAToday: USAToday(); break;
  555. case DOMAIN.Vulture: Vulture(); break;
  556. case DOMAIN.WashingtonPost: WashingtonPost(); break;
  557. }
  558. }
  559. }
  560.  
  561. // Sledgehammer 1.0
  562. function sledgeHammerRemoval() {
  563. const REPEAT_INTERVAL = 1500; // 1.5 seconds
  564. switch (URL_HOSTNAME)
  565. {
  566. case DOMAIN.TheDailyBeast: successRemovalMessage(); setTimeout(function() { TheDailyBeast(); }, REPEAT_INTERVAL); break;
  567. case DOMAIN.HoustonChronicle: successRemovalMessage(); setTimeout(function() { HoustonChronicle(); }, REPEAT_INTERVAL); break;
  568. case DOMAIN.Inquirer: successRemovalMessage(); setTimeout(function() { Inquirer(); }, REPEAT_INTERVAL); break;
  569. case DOMAIN.NationalGeographic: successRemovalMessage(); setTimeout(function() { NationalGeographic(); }, REPEAT_INTERVAL); break;
  570. case DOMAIN.SFChronicle: successRemovalMessage(); setTimeout(function() { SFChronicle(); }, REPEAT_INTERVAL); break;
  571. }
  572. }
  573.  
  574. sledgeHammerRemoval();
  575.  
  576. function displayMessage(domain) {
  577. return console.log(`%c 🚦 Assassinate Ad Block Blockers Clear interval pass for ${ domain } then pause for a few seconds...`, 'background: #FFBF01; color: #222;');
  578. }
  579.  
  580. // Periodicially clear everything and pause for a few seconds, then start again. Not as agreesive as Sledgehammer function
  581. function clearAllIntervals() {
  582. successRemovalMessage();
  583.  
  584. setTimeout(function() {
  585. console.clear();
  586.  
  587. if (URL_HOSTNAME != DOMAIN.TheDailyBeast)
  588. {
  589. switch(URL_HOSTNAME)
  590. {
  591. case DOMAIN.BusinessInsider: displayMessage(DOMAIN.BusinessInsider); BusinessInsider(); break;
  592. case DOMAIN.BusinessInsiderMarkets: displayMessage(DOMAIN.BusinessInsiderMarkets); BusinessInsider(); break;
  593. case DOMAIN.Curbed: displayMessage(DOMAIN.Curbed); Curbed(); break;
  594. case DOMAIN.CNN: displayMessage(DOMAIN.CNN); break;
  595. case DOMAIN.DailyMail: displayMessage(DOMAIN.DailyMail); DailyMail(); break;
  596. case DOMAIN.EuroGamer: displayMessage(DOMAIN.EuroGamer); EuroGamer(); break;
  597. case DOMAIN.Forbes: displayMessage(DOMAIN.Forbes); Forbes(); break;
  598. case DOMAIN.Fortune: displayMessage(DOMAIN.Fortune); Fortune(); break;
  599. case DOMAIN.Insider: displayMessage(DOMAIN.Insider); Insider(); break;
  600. case DOMAIN.LATimes: displayMessage(DOMAIN.LATimes); LATimes(); break;
  601. case DOMAIN.MakeUseOf: displayMessage(DOMAIN.MakeUseOf); MakeUseOf(); break;
  602. case DOMAIN.MetroUK: displayMessage(DOMAIN.MetroUK); MetroUK(); break;
  603. case DOMAIN.NBCNews: displayMessage(DOMAIN.NBCNews); NBCNews(); break;
  604. case DOMAIN.NewYorkTimes: displayMessage(DOMAIN.NewYorkTimes); NewYorkTimes(); break;
  605. case DOMAIN.NewYorkTimesCooking: displayMessage(DOMAIN.NewYorkTimesCooking); NewYorkTimes(); break;
  606. case DOMAIN.NYMag: displayMessage(DOMAIN.NYMag); NYMag(); break;
  607. case DOMAIN.RottenTomatoes: displayMessage(DOMAIN.RottenTomatoes); RottenTomatoes(); break;
  608. case DOMAIN.TheCut: displayMessage(DOMAIN.TheCut); TheCut(); break;
  609. case DOMAIN.USAToday: displayMessage(DOMAIN.USAToday); USAToday(); break;
  610. case DOMAIN.Vulture: displayMessage(DOMAIN.Vulture); Vulture(); break;
  611. case DOMAIN.WashingtonPost: displayMessage(DOMAIN.WashingtonPost); WashingtonPost(); break;
  612. }
  613.  
  614. clearInterval('SledgehammerRemoval');
  615. console.log('%c 👍 Assassinate Ad Block Blockers — Sledgehammer interval cleared', 'background: #0b801d; color: #fff;');
  616. }
  617.  
  618. if (currentStatus1 !== undefined) currentStatus1 = undefined;
  619. if (currentStatus2 !== undefined) currentStatus2 = undefined;
  620. if (currentStatus3 !== undefined) currentStatus3 = undefined;
  621. if (currentStatus4 !== undefined) currentStatus4 = undefined;
  622. if (currentStatus5 !== undefined) currentStatus5 = undefined;
  623. if (currentStatus6 !== undefined) currentStatus6 = undefined;
  624. if (currentStatus7 !== undefined) currentStatus7 = undefined;
  625. if (currentStatus8 !== undefined) currentStatus8 = undefined;
  626. if (currentStatus9 !== undefined) currentStatus9 = undefined;
  627. if (currentStatus10 !== undefined) currentStatus10 = undefined;
  628. if (CI !== undefined) CI = undefined;
  629. console.log('%c 😎 Assassinate Ad Block Blockers — All intervals cleared', 'background: #0b801d; color: #fff;');
  630.  
  631. $('#Injected-By-Assassinate-Ad-Block-Blockers').remove();
  632. }, 1500); // Wait 1.5 seconds for the success animation to finish
  633. }
  634.  
  635. const PROCESSING_MESSAGE = 'The Assassinate Ad Block Blockers script is doing its jobs. Please wait a few seconds. 🚦';
  636.  
  637. startingRemovalMessage(PROCESSING_MESSAGE);
  638.  
  639. // Sets up listeners to supercede any blocker shenanigans
  640. if (STANDARD_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1) currentStatus1 = setTimeout(domStatusCheck, 50); // deepscan-disable-line
  641. if (AUXILIARY_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus2 = setTimeout(domStatusCheck, 50); } // deepscan-disable-line
  642.  
  643. // Second pass after 1.5 seconds
  644. if (STANDARD_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus3 = setTimeout(domStatusCheck, 1500); } // deepscan-disable-line
  645. if (ABNORMAL_BLOCKER_DONAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus4 = setTimeout(domStatusCheck, 1500); } // deepscan-disable-line
  646.  
  647. // Third pass after 2.5 seconds
  648. if (STANDARD_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus5 = setTimeout(domStatusCheck, 2500); } // deepscan-disable-line
  649. if (ABNORMAL_BLOCKER_DONAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus6 = setTimeout(domStatusCheck, 2500); } // deepscan-disable-line
  650.  
  651. // Fourth pass after 5.5 seconds
  652. if (STANDARD_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus7 = setTimeout(domStatusCheck, 5500); } // deepscan-disable-line
  653. if (ABNORMAL_BLOCKER_DONAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus8 = setTimeout(domStatusCheck, 5500); } // deepscan-disable-line
  654.  
  655. // Fifth pass after 7 seconds
  656. if (STANDARD_BLOCKER_DOMAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus9 = setTimeout(domStatusCheck, 7000); } // deepscan-disable-line
  657. if (ABNORMAL_BLOCKER_DONAINS.indexOf(URL_HOSTNAME) > -1) { currentStatus10 = setTimeout(domStatusCheck, 7000); } // deepscan-disable-line
  658.  
  659. // Last-pass guarantee after 7.05 seconds (We want this to fire immediately after the fifth pass)
  660. let CI = setTimeout(clearAllIntervals, 7050);
  661.  
  662. // Perpetual check and removal every 2.5 seconds - The Peter Gabriel Sledgehammer Special
  663. if (ABNORMAL_BLOCKER_DONAINS.indexOf(URL_HOSTNAME) > -1) { setInterval(sledgeHammerRemoval, 2500); }
  664.  
  665. console.clear();
  666. }
  667.  
  668. // Load jQuery and then execute the main function
  669. addJQuery(main);

QingJ © 2025

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