Initial commit of 0.2.0

This commit is contained in:
Cooper Dalrymple
2025-07-22 15:53:23 -05:00
parent 58a5fbbcb2
commit 70a9adac4c
13 changed files with 775 additions and 3 deletions

65
assets/js/obfuscation.js Normal file
View File

@@ -0,0 +1,65 @@
/**
* @package ogre-obfuscation
* @author cleverogre
* @version 0.2.0
* @since 0.1.0
*/
(() => {
const reObfuscateElement = (element) => {
element.outerHTML = unEncodeEmailChars(reObfuscateCore(element.getAttribute('data-content')));
};
const reObfuscate = (str, id) => {
const el = document.getElementById(id);
const newEl = document.createTextNode('');
newEl.innerHTML = unEncodeEmailChars(reObfuscateCore(str));
el.parentNode.replaceChild(newEl, el);
};
const reObfuscateCore = (str) => {
let out = '';
for (let i = 0; i < str.length; i++) {
out = str.charAt(i) + out;
}
return out;
};
const unEncodeEmailChars = (str) => {
let i = 0;
let num = '';
let out = '';
while (i < str.length) {
if (str.charAt (i) == '&') {
num = '';
i += 2; /// skip &#
while (str.charAt(i) != ';' && i < str.length) {
num += str.charAt(i);
i++;
}
if (str.charAt(i) == ";") {
i++;
}
out += String.fromCharCode(parseInt(num));
} else {
out += str.charAt(i);
i++;
}
}
return out;
};
document.addEventListener('DOMContentLoaded', () => {
const elements = document.getElementsByClassName('obfuscate');
for (let i = elements.length - 1; i >= 0; i--) {
reObfuscateElement(elements[i]);
}
});
})();