Skip to content

Instantly share code, notes, and snippets.

@lustremedia
Forked from trent2/unob_spiegelplus.user.js
Created February 7, 2018 09:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lustremedia/27ab1ffb7ee8c7c3d357cf8096a74b97 to your computer and use it in GitHub Desktop.
Save lustremedia/27ab1ffb7ee8c7c3d357cf8096a74b97 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/*
// @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