// ==UserScript== // @name Reverse Word Filters // @namespace http://tampermonkey.net/ // @version 1.7 // @description Word filters suck o algo // @author You // @match https://soyjak.party/* // @match https://soyjak.st/* // @grant none // ==/UserScript== (function () { 'use strict'; // Define the word filters to reverse, MAKE SURE THE WORDS AREN'T COMBINED WITH ANY OTHER SHIT (EXAMPLE: "NUSOICUCK" WILL USE THE FILTERED WORD WHILE "NUSOI CUCK" WON'T) const filters = { "good boy": "chud", "good boys": "chuds", "bad boy": "nigger", "bad boybabble": "niggerbabble", "bad boys": "niggers", "santa claus": "froot", "santa clausy": "frooty", "santa clauscord": "frootcord", "nuelf": "nusoi", "grinch": "tranny", "krampus": "troon", "krampuss": "troons", "krampusslop": "troonslop", "santa denier": "muslim", "slopelf": "slopjak", "woelfs": "wojaks", "woelf": "wojak", "grinches": "trannies", "eggnog": "soylent", "Licorice Candy": "bbc", "Vanilla Candy": "bwc", "south pole": "4chan", "Santa's workshop": "sharty", "gift": "gem", "gifts": "gems", "giftmy": "gemmy", "Ms. claus": "root", "gifterald": "gemerald", "We have gathered here to celebrate Christmas, the day when Jesus Christ was born.": "ITT", "MERRY CHRISTMAS": "kill yourself", "jack frost": "zog", "naughty kid": "foodist", "naughty kids": "foodists", "snowman": "faggot", "hungry": "slut", "scrooge": "jew", "scroogeish": "jewish", "scrooges": "jews", "santa's helpers": "mods", // "hohoho": "kek", "merry": "kino", "sameelf": "samefag", "Believe in the magic of christmas": "fuck you", "Let your heart be bright": "die", "snowball fight": "raid", "deliver presents to": "dox", "deliver presents toxed": "doxxed", "merry": "calm", "gogogo": "geg", "HOHOHO": "bump", // "baubles": "wordfilter", // "baubles": "wordfilters", "'Tis the season": "it's over", "elf": "jak", "elfs": "jaks", "elfking": "jakking", "early present introduction": "EPI", "festive": "keyed", "killjoy": "cringe", "milk and cookies": "meds", "giftmier": "gemmier", "place santa doesn't visit": "jarty", "place santa doesn't visitcuck": "jartycuck", "caroler": "ghoul", "smile": "seethe", "smiling": "seething", "celebrate": "cope", "celebrating": "coping", "feast": "dilate", "feasting": "dilating", "Reindeer": "incel", "Reindeers": "incels", "in the naughty list": "banned", "You have no gems under your christmas tree": "YWNBAW", "easter": "twitter", "halloween": "'cord", "soyelf": "soyjak", "breads": "threads", "bread": "thread" }; // Create a regular expression for each word filter (ensure special characters are escaped) const filterRegex = Object.entries(filters).map( ([filtered, original]) => [new RegExp(`\\b${filtered.replace(/[.*+?^=!:${}()|\[\]\/\\]/g, "\\$&")}\\b`, 'gi'), original] ); // Function to reverse filters in a text node function reverseText(text) { for (let [regex, original] of filterRegex) { text = text.replace(regex, original); } return text; } // Function to scan and reverse filters in text nodes function reverseFilters(node) { if (node.nodeType === Node.TEXT_NODE) { node.nodeValue = reverseText(node.nodeValue); } else if (node.nodeType === Node.ELEMENT_NODE) { for (let child of node.childNodes) { reverseFilters(child); } } } // Apply the filter reversal to the entire document function applyFilters() { reverseFilters(document.body); } // Observe changes to the DOM and apply filters to new content const observer = new MutationObserver((mutations) => { for (let mutation of mutations) { for (let node of mutation.addedNodes) { reverseFilters(node); } } }); // Start observing the document observer.observe(document.body, { childList: true, subtree: true }); // Initial application of the filters applyFilters(); })();