Advertisement
emerginginstance

Possible Pre-Clean up before ad block

Jul 2nd, 2021 (edited)
6,502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Never repeat ads
  3. // @namespace    http://tampermonkey.net/
  4. // @version      1.4
  5. // @description  Recursively hides all adverts ever seen before on facebook. able to leave open in a tab for it to work through large history prerequistie to ad block https://pastebin.com/vmaiA8jJ
  6. // @author       You
  7. // @match        https://www.facebook.com/adpreferences/advertisers/?entry_product=waist
  8. // @icon         https://www.google.com/s2/favicons?domain=facebook.com
  9. // @updateURL    https://pastebin.com/raw/rgZ1zD0u
  10. // @downloadURL  https://pastebin.com/raw/rgZ1zD0u
  11. // @grant        none
  12. // ==/UserScript==
  13.  
  14. (function() {
  15.     'use strict';
  16.     let title = 'Never repeat ads';
  17.  
  18.     function userScript(){
  19.        
  20.         var reloadTimer;
  21.         var stopPageCheck;
  22.  
  23.        
  24.         function log(m) {
  25.             console.warn(title, m);
  26.         }
  27.        
  28.         function pageTimerLock() {
  29.             if(window.location.href != 'https://www.facebook.com/adpreferences/advertisers/?entry_product=waist') {
  30.                 clearTimeout(stopPageCheck);
  31.                 clearTimeout(reloadTimer);
  32.                 log("Reload canceled");
  33.             };
  34.         }
  35.  
  36.         function getSpans(text) {
  37.             return Array.from(document.querySelectorAll('span')).filter(e => {return e.innerHTML==text;});
  38.         }
  39.  
  40.         function hide() {
  41.             log('Hiding ads');
  42.             getSpans('Hide Ads').forEach(e=>e.click());
  43.         };
  44.  
  45.         function reload(){
  46.             log('Refreshing page');
  47.             location.reload();
  48.         };
  49.  
  50.         if(getSpans('Hide Ads').length) {
  51.             setTimeout(hide, 2000);
  52.             reloadTimer = setTimeout(reload, 4000);
  53.  
  54.         } else {
  55.             log('no ads to hide for now, checking later');
  56.             reloadTimer = setTimeout(reload, 30000);
  57.         };
  58.        
  59.         stopPageCheck = setInterval(pageTimerLock, 100);
  60.     };
  61.  
  62.     try {
  63.         userScript();
  64.     } catch (e) {
  65.         console.error(title, e);
  66.     };
  67. ;
  68. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement