Something Awful Forums - Uncensor
By Tesiph
—
Last update Nov 1, 2007
—
Installed
249 times.
// ==UserScript==
// @name Something Awful Forums - Uncensor
// @namespace none
// @description Uncensor the Somethin Awful forums when not logged in.
// @include http://forums.somethingawful.com/*
// ==/UserScript==
/* Inspired by http://userscripts.org/scripts/show/9350 by dweezil-n0xad
* Based on a script in Mark Pilgram's "Dive into Greasemonkey"
*/
var replacements, regex, key, textnodes, node, s;
replacements = {
"rear end in a top hat": "asshole",
"rear end": "ass",
"lovely": "fucked",
"loving": "fucking",
"poo poo": "shit",
"gently caress": "fuck",
"making GBS threads": "shitting",
"stinkyhole": "cunt",
"drat": "damn",
"surprise sex": "rape"
};
regex = {};
regex_upper = {};
replacements_upper = {};
for (key in replacements) {
regex[key] = new RegExp(key, 'g');
regex_upper[key] = new RegExp('(^|[A-Z] |[^\\w\\s][ ]?)'+key+'(?= [A-Z]|[^\\w\\s]|$)', 'g');
replacements_upper[key] = '$1' + replacements[key].toUpperCase();
}
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_upper[key], replacements_upper[key]);
s = s.replace(regex[key], replacements[key]);
}
node.data = s;
}