Source for "BSG Profanity Replacement"

By WCityMike
Has 10 other scripts.


// ==UserScript==
// @name           BSG Profanity Replacement
// @description    Greasemonkey script to replace "fuck" and its variants with "frak."
// @include        *
// ==/UserScript==

// Scripting borrowed from "Keep Republicans Laughing" script; profanities derived from "Profanity Filter" script.

var replacements, regex, key, textnodes, node, s;

replacements = {"PHUQ": "FRAK",
"Phuq": "Frak",
"phuq": "frak",
"PHUKS": "FRAKS",
"Phuks": "Fraks",
"phuks": "fraks",
"PHUKKING": "FRAKKING",
"Phukking": "Frakking",
"phukking": "frakking",
"PHUKKED": "FRAKKED",
"Phukked": "Frakked",
"phukked": "frakked",
"PHUKING": "FRAKKING",
"Phuking": "Frakking",
"phuking": "frakking",
"PHUKED": "FRAKKED",
"Phuked": "Frakked",
"phuked": "frakked",
"PHUK": "FRAK",
"Phuk": "Frak",
"phuk": "frak",
"PHUCK": "FRAK",
"Phuck": "Frak",
"phuck": "frak",
"MOTHERFUCKS": "MOTHERFRAKS",
"Motherfucks": "Motherfraks",
"motherfucks": "motherfraks",
"MOTHERFUCKINGS": "MOTHERFRAKKINGS",
"Motherfuckings": "Motherfrakkings",
"motherfuckings": "motherfrakkings",
"MOTHERFUCKING": "MOTHERFRAKKING",
"Motherfucking": "Motherfrakking",
"motherfucking": "motherfrakking",
"MOTHERFUCKIN": "MOTHERFRAKKIN",
"Motherfuckin": "Motherfrakkin",
"motherfuckin": "motherfrakkin",
"MOTHERFUCKERS": "MOTHERFRAKKERS",
"Motherfuckers": "Motherfrakkers",
"motherfuckers": "motherfrakkers",
"MOTHERFUCKER": "MOTHERFRAKKER",
"Motherfucker": "Motherfrakker",
"motherfucker": "motherfrakker",
"MOTHERFUCKED": "MOTHERFRAKKED",
"Motherfucked": "Motherfrakked",
"motherfucked": "motherfrakked",
"MOTHERFUCK": "MOTHERFRAK",
"Motherfuck": "Motherfrak",
"motherfuck": "motherfrak",
"MOTHAFUCKS": "MOTHAFRAKS",
"Mothafucks": "Mothafraks",
"mothafucks": "mothafraks",
"MOTHAFUCKINGS": "MOTHAFRAKKINGS",
"Mothafuckings": "Mothafrakkings",
"mothafuckings": "mothafrakkings",
"MOTHAFUCKING": "MOTHAFRAKKING",
"Mothafucking": "Mothafrakking",
"mothafucking": "mothafrakking",
"MOTHAFUCKIN": "MOTHAFRAKKIN",
"Mothafuckin": "Mothafrakkin",
"mothafuckin": "mothafrakkin",
"MOTHAFUCKERS": "MOTHAFRAKKERS",
"Mothafuckers": "Mothafrakkers",
"mothafuckers": "mothafrakkers",
"MOTHAFUCKER": "MOTHAFRAKKER",
"Mothafucker": "Mothafrakker",
"mothafucker": "mothafrakker",
"MOTHAFUCKED": "MOTHAFRAKKED",
"Mothafucked": "Mothafrakked",
"mothafucked": "mothafrakked",
"MOTHAFUCKAZ": "MOTHAFRAKKAZ",
"Mothafuckaz": "Mothafrakkaz",
"mothafuckaz": "mothafrakkaz",
"MOTHAFUCKAS": "MOTHAFRAKKAS",
"Mothafuckas": "Mothafrakkas",
"mothafuckas": "mothafrakkas",
"MOTHAFUCKA": "MOTHAFRAKKA",
"Mothafucka": "Mothafrakka",
"mothafucka": "mothafrakka",
"MOTHAFUCK": "MOTHAFRAK",
"Mothafuck": "Mothafrak",
"mothafuck": "mothafrak",
"FUX0R": "FRAK0R",
"Fux0r": "Frak0r",
"fux0r": "frak0r",
"FUKS": "FRAKKS",
"Fuks": "Frakks",
"fuks": "frakks",
"FUK": "FRAK",
"Fuk": "Frak",
"fuk": "frak",
"FUCKS": "FRAKS",
"Fucks": "Fraks",
"fucks": "fraks",
"FUCKME": "FRAK ME",
"Fuckme": "Frak Me",
"fuckme": "frak me",
"FUCKINGS": "FRAKKINGS",
"Fuckings": "Frakkings",
"fuckings": "frakkings",
"FUCKING": "FRAKKING",
"Fucking": "Frakking",
"fucking": "frakking",
"FUCKIN": "FRAKKIN",
"Fuckin": "Frakkin",
"fuckin": "frakkin",
"FUCKERS": "FRAKKERS",
"Fuckers": "Frakkers",
"fuckers": "frakkers",
"FUCKER": "FRAKKER",
"Fucker": "Frakker",
"fucker": "frakker",
"FUCKED": "FRAKKED",
"Fucked": "Frakked",
"fucked": "frakked",
"FISTFUCKS": "FISTFRAKS",
"Fistfucks": "Fistfraks",
"fistfucks": "fistfraks",
"FISTFUCKINGS": "FISTFRAKKINGS",
"Fistfuckings": "Fistfrakkings",
"fistfuckings": "fistfrakkings",
"FISTFUCKING": "FISTFRAKKING",
"Fistfucking": "Fistfrakking",
"fistfucking": "fistfrakking",
"FISTFUCKERS": "FISTFRAKKERS",
"Fistfuckers": "Fistfrakkers",
"fistfuckers": "fistfrakkers",
"FISTFUCKER": "FISTFRAKKER",
"Fistfucker": "Fistfrakker",
"fistfucker": "fistfrakker",
"FISTFUCKED": "FISTFRAKKED",
"Fistfucked": "Fistfrakked",
"fistfucked": "fistfrakked",
"FISTFUCK": "FISTFRAK",
"Fistfuck": "Fistfrak",
"fistfuck": "fistfrak",
"FINGERFUCKS": "FINGERFRAKS",
"Fingerfucks": "Fingerfraks",
"fingerfucks": "fingerfraks",
"FINGERFUCKING": "FINGERFRAKKING",
"Fingerfucking": "Fingerfrakking",
"fingerfucking": "fingerfrakking",
"FINGERFUCKERS": "FINGERFRAKKERS",
"Fingerfuckers": "Fingerfrakkers",
"fingerfuckers": "fingerfrakkers",
"FINGERFUCKER": "FINGERFRAKKER",
"Fingerfucker": "Fingerfrakker",
"fingerfucker": "fingerfrakker",
"FINGERFUCKED": "FINGERFRAKKED",
"Fingerfucked": "Fingerfrakked",
"fingerfucked": "fingerfrakked",
"FINGERFUCK": "FINGERFRAK",
"Fingerfuck": "Fingerfrak",
"fingerfuck": "fingerfrak",
"CYBERFUCKING": "CYBERFRAKKING",
"Cyberfucking": "Cyberfrakking",
"cyberfucking": "cyberfrakking",
"CYBERFUCKERS": "CYBERFRAKKERS",
"Cyberfuckers": "Cyberfrakkers",
"cyberfuckers": "cyberfrakkers",
"CYBERFUCKER": "CYBERFRAKKER",
"Cyberfucker": "Cyberfrakker",
"cyberfucker": "cyberfrakker",
"CYBERFUCKED": "CYBERFRAKKED",
"Cyberfucked": "Cyberfrakked",
"cyberfucked": "cyberfrakked",
"CYBERFUCK": "CYBERFRAK",
"Cyberfuck": "Cyberfrak",
"cyberfuck": "cyberfrak",
"CYBERFUC": "CYBERFRAK",
"Cyberfuc": "Cyberfrak",
"cyberfuc": "cyberfrak",
"BUTTFUCKER": "BUTTFRAKKER",
"Buttfucker": "Buttfrakker",
"buttfucker": "buttfrakker",
"BUTTFUCK": "BUTTFRAK",
"Buttfuck": "Buttfrak",
"buttfuck": "buttfrak",
"FUCK": "FRAK",
"Fuck": "Frak",
"fuck": "frak"
};

regex = {};
for (key in replacements) {
    regex[key] = new RegExp(key, 'g');
}

textnodes = document.evaluate(
    "//text()",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
for (var i = 0; i < textnodes.snapshotLength; i++) {
    node = textnodes.snapshotItem(i);
    s = node.data;
    for (key in replacements) {
	s = s.replace(regex[key], replacements[key]);
    }
    node.data = s;
}