Word Spreading Susifier

Gradually turns webpage text into "sus" variations for fun.

  1. // ==UserScript==
  2. // @name Word Spreading Susifier
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0
  5. // @description Gradually turns webpage text into "sus" variations for fun.
  6. // @author jayrock09
  7. // @match *://*/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. const variations = ["sus", "suspicious", "suspect"];
  15. const susProbability = 0.03; // Probability of a word being changed to "sus"
  16.  
  17. function susifyWord(word) {
  18. return variations[Math.floor(Math.random() * variations.length)];
  19. }
  20.  
  21. function susifyNode(node) {
  22. if (node.nodeType === 3) { // Text node
  23. const originalText = node.nodeValue;
  24. let words = originalText.split(/\s+/); // Split text into words
  25. let susifiedWords = words.map(word => {
  26. if (Math.random() < susProbability) {
  27. return susifyWord(word);
  28. } else {
  29. return word;
  30. }
  31. });
  32.  
  33. const susifiedText = susifiedWords.join(' ');
  34. if (susifiedText !== originalText) {
  35. node.nodeValue = susifiedText;
  36. }
  37. } else if (node.nodeType === 1) { // Element node
  38. for (let childNode of node.childNodes) {
  39. susifyNode(childNode);
  40. }
  41. }
  42. }
  43.  
  44. setInterval(function() {
  45. susifyNode(document.body);
  46. }, 9000); // Change text every 9000 milliseconds (9 seconds)
  47. })();