Guest User

MacRumors-filter.user.js

a guest
Dec 31st, 2024
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Remove useless articles on MacRumors
  3. // @version      1.14
  4. // @description  Removes promos on MacRumors
  5. // @author       /u/Pepparkakan
  6. // @match        https://www.macrumors.com/
  7. // @match        https://www.macrumors.com/*/
  8. // @icon         https://www.google.com/s2/favicons?domain=macrumors.com
  9. // @grant        none
  10. // ==/UserScript==
  11.  
  12. const unwantedRes = [
  13.     /\$/i,
  14.     /deal(s|):/i,
  15.     /discount(s|)/i,
  16.     /black friday/i,
  17.     /back to school/i,
  18.     /lowest price/i,
  19.     /(low|best) price(s|)/i,
  20.     /Apple Releases (New |)(Beta |)Firmware.*(Air(Pod|Tag)(s|)|Remote|Display|Beats|MagSafe Charger|Pencil)/i,
  21.     /Apple Seeds.*(New |)(Beta|Release Candidate).*(Developers|Public Beta Testers)/i,
  22.     /Apple Releases (New |)(Beta |).*(Air(Pod|Tag)(s|)|Remote|Display|Beats|MagSafe Charger|Pencil).*Firmware/i,
  23.     /Beta:/i,
  24.     /Apple Seeds.*Beta.*OS.*Developers/i,
  25.     /Apple Vision/i,
  26.     /Vision Pro/i,
  27.     /visionOS/i,
  28.     /MacRumors Giveaway:/i,
  29.     /MacRumors Show:/i
  30. ];
  31.  
  32. (function() {
  33.     'use strict';
  34.  
  35.     if (window.location.href.length > 32) {
  36.         return;
  37.     }
  38.     document.querySelectorAll('article').forEach(article => {
  39.         const title = article.querySelector('div[class^="titlebar--"]');
  40.         if (title == null) {
  41.             return;
  42.         }
  43.         if (unwantedRes.some(re => re.test(title.innerText))) {
  44.             article.childNodes.forEach(node => {
  45.                 if (!node.className.includes('titlebar--')) {
  46.                     article.removeChild(node);
  47.                 }
  48.             });
  49.             const content = article.querySelector('div[class^="content--"]');
  50.             article.removeChild(content);
  51.             title.style.opacity = '40%';
  52.             title.style.padding = '1px 15px 4px 15px';
  53.             const link = title.querySelector('a');
  54.             link.style.fontSize = '12px';
  55.         }
  56.     });
  57. })();
Advertisement
Add Comment
Please, Sign In to add comment