frontend/js/all.js
2024-01-07 18:27:00 -05:00

202 lines
6.1 KiB
JavaScript

let backup_icon;
let backup_name;
function setCloak(name, icon) {
var tabicon = getCookie("tabicon");
if (tabicon || icon) {
var link = document.querySelector("link[rel~='icon']");
if (link) {
if (link.href != icon) backup_icon = link;
while (document.querySelector("link[rel~='icon']")) {
document.querySelector("link[rel~='icon']").remove();
}
}
var link = document.querySelector("link[rel~='shortcut icon']");
if (link) {
if (link.href != icon) backup_icon = link;
while (document.querySelector("link[rel~='shortcut icon']")) {
document.querySelector("link[rel~='shortcut icon']").remove();
}
}
link = document.createElement("link");
link.rel = "icon";
document.head.appendChild(link);
link.href = tabicon;
if (name) {
link.href = icon;
}
}
var tabname = getCookie("tabname");
backup_name = document.title;
if (tabname) {
document.title = tabname;
}
if (name) {
document.title = name;
}
panicMode();
}
if (getCookie("debugging") == 1) {
const debugscript = document.createElement("script");
debugscript.setAttribute("src", "/js/debug.js");
document.head.append(debugscript);
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(";");
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == " ") {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
let listofchars = "";
document.addEventListener("keydown", (e) => {
listofchars = listofchars + e.key;
if (listofchars.length > 20) {
listofchars = listofchars.substring(e.key.length);
}
if (listofchars.includes("safemode")) {
window.location.href = panicurl;
listofchars = "";
} else if (listofchars.includes("debugplz")) {
if (getCookie("debugging") == 1) {
document.cookie = "debugging=0;";
alert("debugging off!");
} else {
document.cookie = "debugging=1";
alert("debugging on!");
}
listofchars = "";
}
});
function panicMode() {
panicurl = getCookie("panicurl");
if (panicurl == "") {
panicurl = "https://google.com";
}
}
const head = document.getElementsByTagName("head")[0];
document.addEventListener(
"DOMContentLoaded",
function () {
setCloak();
const gscript = document.createElement("script");
gscript.setAttribute("async", "");
gscript.setAttribute("src", "https://www.googletagmanager.com/gtag/js?id=G-XVTVBR1D5V");
const ingscript = document.createElement("script");
ingscript.innerHTML = `window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-98DP5VKS42');`;
document.head.append(gscript, ingscript);
},
false
);
if (location.pathname.substring(1).includes("/") && localStorage.getItem("selenite.blockClose") == "true") {
window.addEventListener("beforeunload", (e) => {
e.preventDefault();
e.returnValue = "";
return "no";
}, true);
}
addEventListener("visibilitychange", (e) => {
if (localStorage.getItem("selenite.tabDisguise") == "true") {
if (document.visibilityState === "hidden") {
setCloak("Google", "https://www.google.com/favicon.ico");
} else {
if (!backup_icon) {
icon = document.createElement("link");
icon.rel = "icon";
var link = document.querySelector("link[rel~='icon']");
if (link) {
backup_icon = link;
while (document.querySelector("link[rel~='icon']")) {
document.querySelector("link[rel~='icon']").remove();
}
}
var link = document.querySelector("link[rel~='shortcut icon']");
if (link) {
backup_icon = link;
while (document.querySelector("link[rel~='shortcut icon']")) {
document.querySelector("link[rel~='shortcut icon']").remove();
}
}
document.head.appendChild(icon);
icon.href = location.origin + "/favicon.ico";
} else {
document.head.appendChild(backup_icon);
}
document.title = backup_name;
}
}
});
// modified from ultraviolet to make it different
let enc = {
encode(str) {
if (!str) return str;
return btoa(
encodeURIComponent(
str
.toString()
.split("")
.map((char, ind) => (ind % 3 ? String.fromCharCode(char.charCodeAt() + ind) : char))
.join("")
)
);
},
decode(str) {
if (!str) return str;
let [input, ...search] = str.split("?");
input = decodeURIComponent(atob(input));
return (
input
.split("")
.map((char, ind) => (ind % 3 ? String.fromCharCode(char.charCodeAt(0) - ind) : char))
.join("") + (search.length ? "?" + search.join("?") : "")
);
},
};
if (localStorage.getItem("selenite.password")) {
if (!location.hash) {
location.hash = localStorage.getItem("selenite.password");
}
}
if (JSON.parse(localStorage.getItem("selenite.passwordAtt"))) {
if (JSON.parse(localStorage.getItem("selenite.passwordAtt"))[0] == false && Math.floor(Date.now() / 1000) - JSON.parse(localStorage.getItem("selenite.passwordAtt"))[1] < 600) {
location.href = "https://google.com";
}
}
if (location.hash) {
localStorage.setItem("selenite.password", location.hash.substring(1));
if (JSON.parse(localStorage.getItem("selenite.passwordAtt"))) {
if (JSON.parse(localStorage.getItem("selenite.passwordAtt"))[0] == true && Math.floor(Date.now() / 1000) - JSON.parse(localStorage.getItem("selenite.passwordAtt"))[1] < 600) {
console.log("already good :)");
} else {
if (prompt("Type the right password:") == enc.decode(location.hash.substring(1))) {
localStorage.setItem("selenite.passwordAtt", `[true,${Math.floor(Date.now() / 1000)}]`);
console.log("Correct password!");
} else {
localStorage.setItem("selenite.passwordAtt", `[false,${Math.floor(Date.now() / 1000)}]`);
location.href = "https://google.com";
}
}
} else {
if (prompt("Type the right password:") == enc.decode(location.hash.substring(1))) {
localStorage.setItem("selenite.passwordAtt", `[true,${Math.floor(Date.now() / 1000)}]`);
console.log("Correct password!");
} else {
localStorage.setItem("selenite.passwordAtt", `[false,${Math.floor(Date.now() / 1000)}]`);
location.href = "https://google.com";
}
}
}