Softr.io Cleanup

Deletes most elements that are off topic to the page. This does not include ads.

  1. // ==UserScript==
  2. // @name Softr.io Cleanup
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.0
  5. // @description Deletes most elements that are off topic to the page. This does not include ads.
  6. // @author TheApkDownloader
  7. // @license GNU GPLv3
  8. // @match https://*.softr.io/*
  9. // @icon https://assets.softr-files.com/assets/images/softr_logo/softr_logo_icon_only.svg
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. function cleanUp() {
  17. const cookieBanner = document.getElementById('cookiebanner');
  18. if (cookieBanner) {
  19. cookieBanner.remove();
  20. }
  21.  
  22. const madeByElements = document.getElementsByClassName('made-by-softr');
  23. Array.from(madeByElements).forEach(element => element.remove());
  24.  
  25. const swBannerElements = document.getElementsByClassName('sw-banner');
  26. Array.from(swBannerElements).forEach(element => element.remove());
  27.  
  28. const elementsWithAltTextProductHunt = document.querySelectorAll('img[alt*="Product Hunt"]');
  29. elementsWithAltTextProductHunt.forEach(element => element.remove());
  30.  
  31. const elementsWithAltTextFreeWebsiteBuilder = document.querySelectorAll('img[alt*="Free Website Builder"]');
  32. elementsWithAltTextFreeWebsiteBuilder.forEach(element => element.remove());
  33. }
  34.  
  35. const originalFetch = window.fetch;
  36. window.fetch = async function(...args) {
  37. if (args[0].includes('https://api.producthunt.com/widgets/embed-image') && args[0].includes('top-post-badge.svg')) {
  38. location.reload();
  39. return new Response(null, { status: 404 });
  40. }
  41. return originalFetch(...args);
  42. };
  43.  
  44. const observer = new MutationObserver(() => {
  45. cleanUp();
  46. });
  47.  
  48. observer.observe(document.body, { childList: true, subtree: true });
  49.  
  50. setInterval(cleanUp, 1000);
  51.  
  52. cleanUp();
  53. })();