// ==UserScript==
// @name RealzCode Anonymity
// @namespace RealzCode/Anonymity
// @description Thank you Javascript 🙃
// @include *
// @version 1.0
// @grant none
// @noframes false
// @license Fair
// @run-at document-start
// ==/UserScript==
let realzcode = document.createElement("script");
realzcode.textContent = "(" + (function() {
"use strict";
let setValue = function (object, propertyName, value, writable) {
if (!writable) {
writable = false;
}
Object.defineProperty(object, propertyName, {
value: value,
writable: writable,
enumerable: true
});
};
fetch('https://ipapi.co/json')
.then(response => response.json())
.then(data => {
let lang = data.languages.split(',')[0];
let langs = data.languages.split(',');
if (lang.length == 2) {
lang = lang.toLowerCase() + '-' + lang.toUpperCase();
}
setValue(navigator, "language", lang);
setValue(navigator, "languages", langs);
});
let random = {
"change": function (n, m) {
if (!m) {
m = 0.1;
}
return Math.round(n + ((Math.random() - 0.5) * 2 * n * 0.3));
},
"item": function (e) {
let rand = e.length * Math.random();
return e[Math.floor(rand)];
},
"key": function (power) {
let rand = Object.keys(power).length * Math.random();
return Object.keys(power)[Math.floor(rand)];
}
};
let screens = {
0 : [640, 360],
1 : [640, 480],
2 : [800, 600],
3 : [1024, 768],
4 : [1280, 720],
5 : [1280, 800],
6 : [1280, 1024],
7 : [1360, 768],
8 : [1366, 768],
9 : [1440, 900],
10 : [1536, 864],
11 : [1600, 900],
12 : [1600, 1200],
13 : [1680, 1050],
14 : [1920, 1080],
15 : [1920, 1200],
16 : [2048, 1152],
17 : [2048, 1536],
18 : [2560, 1080],
19 : [2560, 1440],
20 : [2560, 1600],
21 : [3440, 1440],
22 : [3840, 2160]
};
let srand = random.key(screens);
let swidth = (screens)[srand][0];
let sheight = (screens)[srand][1];
setValue(screen, "width", swidth);
setValue(screen, "availWidth", swidth);
setValue(screen, "innerWidth", swidth);
setValue(screen, "outerWidth", swidth);
setValue(screen, "height", sheight);
setValue(screen, "availHeight", sheight);
setValue(screen, "innerHeight", sheight);
setValue(screen, "outerHeight", sheight);
setValue(screen, "left", undefined, true);
setValue(screen, "top", undefined, true);
setValue(screen, "enabled", undefined);
setValue(screen, "mozEnabled", undefined);
setValue(screen, "availLeft", undefined, true);
setValue(screen, "availTop", undefined, true);
setValue(screen, "Brightness", random.change(screen.Brightness));
setValue(screen, "mozBrightness", random.change(screen.mozBrightness));
setValue(screen, "pixelDepth", random.item([24, 32]));
setValue(screen, "colorDepth", random.item([24, 32]));
setValue(screen, "devicePixelRatio", random.item([24, 32]));
}) + ")()";
document.documentElement.prepend(realzcode);