NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Transphobia-away // @namespace genevera // @version 0.1 // @license MIT // @description replace anti-trans slurs used on porn sites with less-offensive alternatives // @author Genevera // @match *://*xhamster.com/* // @match *://*pornhub.com/* // @match *://*yespornplease.com/* // @match *://*xnxx.com/* // @match *://*xvideos.com/* // @grant none // ==/UserScript== (function sanitizer() { 'use strict'; const replaceOnDocument = (pattern, string, {target = document.body} = {}) => { [ target, ...target.querySelectorAll("*:not(script):not(noscript):not(style)") ].forEach(({childNodes: [...nodes]}) => nodes .filter(({nodeType}) => nodeType === document.TEXT_NODE) .forEach((textNode) => textNode.textContent = textNode.textContent.replace(pattern, string))); }; window.addEventListener('load', function() { var transitions = { "trans girl": [ /ladyboy/g, /shemale/g, /trap/g, /tranny/g ], "Trans Girl": [ /Ladyboy/g, /Shemale/g, /Trap/g, /Tranny/g ] }; for (var key in transitions) { for (var item in transitions[key]) { replaceOnDocument(transitions[key][item], key); } } }); })();