Greasy Fork is available in English.
Gives you "dyslexia" on Twitch and HTML5 Chatango. Code from https://geon.github.io/programming/2016/03/03/dsxyliea
// ==UserScript==
// @name Twitch/Chatango Dyslexia Giver (Scramble Words)
// @namespace Twitch/Chatango Dyslexia Giver (Scramble Words)
// @description Gives you "dyslexia" on Twitch and HTML5 Chatango. Code from https://geon.github.io/programming/2016/03/03/dsxyliea
// @include *//st.chatango.com/*
// @include *twitch.tv/*
// @version 1.02
// @grant none
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
// ==/UserScript==
this.$ = this.jQuery = jQuery.noConflict(true);
"use strict";
$(function() {
var getTextNodesIn = function(el) {
return $(el).find(":not(iframe,script)").addBack().contents().filter(function() {
return this.nodeType == 3;
});
};
// var textNodes = getTextNodesIn($("p, h1, h2, h3"));
var textNodes = getTextNodesIn($("span"));
function isLetter(char) {
return /^[\d]$/.test(char);
}
var wordsInTextNodes = [];
console.log(textNodes.length);
for (var i = 0; i < textNodes.length; i++) {
var node = textNodes[i];
var words = []
var re = /\w+/g;
var match;
while ((match = re.exec(node.nodeValue)) != null) {
var word = match[0];
var position = match.index;
words.push({
length: word.length,
position: position
});
}
wordsInTextNodes[i] = words;
};
function messUpWords() {
var textNodes = getTextNodesIn($("span"));
var wordsInTextNodes = [];
for (var i = 0; i < textNodes.length; i++) {
var node = textNodes[i];
var words = []
var re = /\w+/g;
var match;
while ((match = re.exec(node.nodeValue)) != null) {
var word = match[0];
var position = match.index;
words.push({
length: word.length,
position: position
});
}
wordsInTextNodes[i] = words;
};
for (var i = 0; i < textNodes.length; i++) {
var node = textNodes[i];
for (var j = 0; j < wordsInTextNodes[i].length; j++) {
// Only change a tenth of the words each round.
if (Math.random() > 1 / 10) {
continue;
}
var wordMeta = wordsInTextNodes[i][j];
var word = node.nodeValue.slice(wordMeta.position, wordMeta.position + wordMeta.length);
var before = node.nodeValue.slice(0, wordMeta.position);
var after = node.nodeValue.slice(wordMeta.position + wordMeta.length);
node.nodeValue = before + messUpWord(word) + after;
};
};
}
function messUpWord(word) {
if (word.length < 3) {
return word;
}
return word[0] + messUpMessyPart(word.slice(1, -1)) + word[word.length - 1];
}
function messUpMessyPart(messyPart) {
if (messyPart.length < 2) {
return messyPart;
}
var a, b;
while (!(a < b)) {
a = getRandomInt(0, messyPart.length - 1);
b = getRandomInt(0, messyPart.length - 1);
}
return messyPart.slice(0, a) + messyPart[b] + messyPart.slice(a + 1, b) + messyPart[a] + messyPart.slice(b + 1);
}
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
setInterval(messUpWords, 50);
});