// ==UserScript==
// @name autoSpurdo
// @description Convert text on every page into spurdo
// @namespace installgen2
// @include *
// @version 5
// @grant none
// ==/UserScript==
(function(){
var replacements = [
["wh", "w"],
["th", "d"],
["af", "ab"],
["ap", "ab"],
["ca", "ga"],
["ck", "gg"],
["co", "go"],
["ev", "eb"],
["ex", "egz"],
["et", "ed"],
["iv", "ib"],
["it", "id"],
["ke", "ge"],
["nt", "nd"],
["op", "ob"],
["ot", "od"],
["po", "bo"],
["pe", "be"],
["pi", "bi"],
["up", "ub"],
["va", "ba"],
["ck", "gg"],
["cr", "gr"],
["kn", "gn"],
["lt", "ld"],
["mm", "m"],
["nt", "dn"],
["pr", "br"],
["ts", "dz"],
["tr", "dr"],
["bs", "bz"],
["ds", "dz"],
["es", "es"],
["fs", "fz"],
["gs", "gz"],
[" is", " iz"],
["ls", "lz"],
["ms", "mz"],
["ns", "nz"],
["rs", "rz"],
["ss", "sz"],
["ts", "tz"],
["us", "uz"],
["ws", "wz"],
["ys", "yz"],
["alk", "olk"],
["ing", "ign"],
["ic", "ig"],
["ng", "nk"],
["kek", "geg"],
["epic", "ebin"],
["some", "sum"],
["meme", "maymay"],
];
var ebinFaces = [
":D",
":DD",
":DDD",
":-D",
"XD",
"XXD",
"XDD",
"XXDD"
];
function getEbinFace() {
return ebinFaces[Math.floor(Math.random() * ebinFaces.length)];
}
walk(document.body);
function walk(node) {
// I stole this function from here:
// http://is.gd/mwZp7E
var child,
next;
switch (node.nodeType) {
case 1: // Element
case 9: // Document
case 11: // Document fragment
child = node.firstChild;
while (child) {
next = child.nextSibling;
walk(child);
child = next;
}
break;
case 3: // Text node
spurdoNode(node);
break;
}
}
function spurdoNode(node) {
var text = node.nodeValue;
text = text.toLowerCase();
replacements.forEach(function (filter) {
var replaceFrom = new RegExp(filter[0], "gm"),
replaceTo = filter[1];
text = text.replace(replaceFrom, replaceTo);
});
while (text.match(/\.|,(?=\s|$)/m)) {
text = text.replace(/\.|,(?=\s|$)/m, " " + getEbinFace());
}
node.nodeValue = text;
}
})();