Skip to content

Instantly share code, notes, and snippets.

@BlackLotus
Forked from trent2/unob_spiegelplus.user.js
Last active December 26, 2017 23:18
Show Gist options
  • Save BlackLotus/9c7a5c925075e47b35bb78eeeaa929b2 to your computer and use it in GitHub Desktop.
Save BlackLotus/9c7a5c925075e47b35bb78eeeaa929b2 to your computer and use it in GitHub Desktop.
Unobfuscate SPIEGEL plus articles with greasemonkey
// ==UserScript==
// @name unobfuscate spiegel plus
// @namespace obfuscate
// @include http://www.spiegel.de/*
// @include http://m.spiegel.de/*
// @version 1
// @grant none
// ==/UserScript==
if(document.getElementsByClassName('obfuscated-content')[0] != undefined) {
document.getElementsByClassName('obfuscated-content')[0].setAttribute("class", "");
var elems = document.getElementsByClassName('obfuscated'), t, or, c, i, cc;
for(i in elems) {
or = elems[i].innerHTML;
t = "";
inElement = false;
openTag = -1;
isATag = false;
closingTag = false;
dontTranslate = false;
if(or != undefined)
for(c=0; c<or.length; ++c) {
if(openTag>-1)
openTag++;
cc = or.charCodeAt(c);
if(cc == 60) { // "<"
dontTranslate = true;
inElement = true;
openTag = 0;
}
if(cc>33 && !dontTranslate) {
switch(cc) {
case 180: t += ";"; break;
case 178: t += "!"; break;
case 177: t += "&"; break;
default:
t += String.fromCharCode(cc-1);
}
}
else
t += or.charAt(c);
if(openTag==1 && cc == 97) // <a ...
isATag = true;
if(openTag==1 && cc == 47) // "</"
closingTag = true;
if(inElement && cc == 62) { // "<...>"
dontTranslate = isATag && !closingTag;
isATag = false;
inElement = closingTag = false;
openTag = -1;
}
}
elems[i].innerHTML = t;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment