Advertisement
Guest User

Untitled

a guest
Aug 16th, 2016
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Facebook unsponsored
  3. // @namespace    http://tampermonkey.net/
  4. // @version      1.4.1
  5. // @description  Block Facebook news feed "sponsored" posts
  6. // @author       solskido
  7. // @match        https://www.facebook.com/*
  8. // @run-at       document-idle
  9. // ==/UserScript==
  10.  
  11. /* jshint esnext: true */
  12.  
  13. const streamSelector = 'div[id^="topnews_main_stream"]';
  14. const storySelector = 'div[id^="hyperfeed_story_id"]';
  15. const sponsoredSelector = 'uiStreamSponsoredLink';
  16.  
  17. const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  18.  
  19. let stream;
  20. let stories = [];
  21.  
  22. let process = () => {
  23.     // Locate the stream every iteration to allow for FB SPA navigation which
  24.     // replaces the stream element
  25.     stream = document.querySelector(streamSelector);
  26.     if(!stream) {
  27.         return;
  28.     }
  29.  
  30.     stories = stream.querySelectorAll(storySelector);
  31.     if(!stories.length) {
  32.         return;
  33.     }
  34.  
  35.     stories.forEach((story) => {
  36.         const sponsored = story.getElementsByClassName(sponsoredSelector);
  37.         if(sponsored.length) {
  38.             story.remove();
  39.         }
  40.     });
  41. };
  42.  
  43. const observer = new MutationObserver(process);
  44. observer.observe(document.querySelector("body"), {
  45.     'childList': true,
  46.     'subtree': true
  47. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement