111 lines
3.3 KiB
JavaScript
Raw Normal View History

2024-05-04 14:44:23 +02:00
function doLogin() {
localStorage.setItem("email", $("#email").val());
localStorage.setItem("password", $("#password").val());
loginFromLocalStorage();
}
function loginFromLocalStorage() {
const req = $.post({
url: "/api/login.php",
contentType: "text/plain",
data: JSON.stringify({
email: localStorage.getItem("email"),
password: wp.encSync(localStorage.getItem("password"), "hex"),
time: parseInt(new Date() / 1000),
s: "W0RFXVN0ZXZlIGxpa2VzIGJpZyBidXR0cw==", // signature of some kind
lang: "en",
date: 1501230947855458660, // ???
ClientType: "",
PS: "W0RFXVN0ZXZlIGxpa2VzIGJpZyBidXR0cw==" // anti-cheat data
})
});
req.done(data => {
$("#login-view").addClass("d-none");
$("#main-view").removeClass("d-none");
$(".displayname").text(data.DisplayName);
window.accountId = data.id;
});
req.fail(() => {
logout();
alert("Login failed");
});
}
function logout() {
localStorage.removeItem("email");
localStorage.removeItem("password");
$("#login-view").removeClass("d-none");
$("#main-view").addClass("d-none");
}
if (localStorage.getItem("email") && localStorage.getItem("password")) {
loginFromLocalStorage();
}
const req = $.get("/custom/getItemLists");
req.done(data => {
for (const [type, items] of Object.entries(data)) {
items.forEach(item => {
const option = document.createElement("option");
option.setAttribute("data-key", item.uniqueName);
option.value = item.name;
document.getElementById("datalist-" + type).appendChild(option);
});
}
});
function getKey(input) {
return document
.getElementById(input.getAttribute("list"))
.querySelector("[value='" + input.value.split("'").join("\\'") + "']")
?.getAttribute("data-key");
}
function doAcquireWarframe() {
const uniqueName = getKey(document.getElementById("warframe-to-acquire"));
if (!uniqueName) {
$("#warframe-to-acquire").addClass("is-invalid");
return;
}
const req = $.post({
url: "/custom/addItem",
contentType: "application/json",
data: JSON.stringify({
type: "Powersuit",
internalName: uniqueName,
accountId: window.accountId
})
});
req.done(() => {
alert("Warframe added to your inventory! Visit navigation to force an inventory update.");
});
}
$("#warframe-to-acquire").on("input", () => {
$("#warframe-to-acquire").removeClass("is-invalid");
});
function doAcquireWeapon() {
const uniqueName = getKey(document.getElementById("weapon-to-acquire"));
if (!uniqueName) {
$("#weapon-to-acquire").addClass("is-invalid");
return;
}
const req = $.post({
url: "/custom/addItem",
contentType: "application/json",
data: JSON.stringify({
type: "Weapon",
internalName: uniqueName,
accountId: window.accountId
})
});
req.done(() => {
alert("Weapon added to your inventory! Visit navigation to force an inventory update.");
});
}
$("#weapon-to-acquire").on("input", () => {
$("#weapon-to-acquire").removeClass("is-invalid");
});