108 lines
2.6 KiB
JavaScript
108 lines
2.6 KiB
JavaScript
function parse() {
|
|
const input = document.getElementById("input").value;
|
|
const data = input.slice(32);
|
|
|
|
const compressedData = decode_base64(data);
|
|
const uncompressed = pako.inflate(compressedData, { to: "string" });
|
|
const json = JSON.parse(uncompressed);
|
|
console.log(json);
|
|
|
|
convertToDesktop(json);
|
|
}
|
|
|
|
function convertToDesktop(json) {
|
|
const newValues = {
|
|
crb: false,
|
|
newClanRaidClassId: 0,
|
|
newClanRaidClassLevel: 0,
|
|
pendingImmortalSouls: 0,
|
|
pendingRaidRubies: 0,
|
|
immortalSouls: 0,
|
|
lastPurchaseTime: 0,
|
|
lastRaidAttemptTimestamp: 0,
|
|
lastRaidRewardCheckTimestamp: 0,
|
|
shouldShowHZERoster: false,
|
|
lastBonusRewardCheckTimestamp: 0,
|
|
};
|
|
|
|
const mappedValues = {
|
|
rubies: Math.round(json.rubies / 10),
|
|
};
|
|
|
|
const pcSpecificValues = {
|
|
readPatchNumber: "1.0e12",
|
|
saveOrigin: "pc",
|
|
};
|
|
|
|
const hash = "7a990d405d2c6fb93aa8fbb0ec1a3b23";
|
|
const newData = {
|
|
...newValues,
|
|
...json,
|
|
...mappedValues,
|
|
...pcSpecificValues,
|
|
};
|
|
const compressed = pako.deflate(JSON.stringify(newData), { to: "string" });
|
|
const base64 = btoa(compressed);
|
|
|
|
const finalSaveString = hash + base64;
|
|
document.getElementById("output_output").innerText = finalSaveString;
|
|
showOutput();
|
|
}
|
|
|
|
function showOutput() {
|
|
document.getElementById("outputs").style.visibility = "visible";
|
|
}
|
|
|
|
function copyOutput() {
|
|
const output = document.getElementById("output_output");
|
|
output.disabled = false;
|
|
output.focus();
|
|
output.select();
|
|
document.execCommand("copy");
|
|
output.disabled = true;
|
|
const successElement = document.getElementById("copy_success_msg");
|
|
successElement.style.visibility = "visible";
|
|
setTimeout(() => (successElement.style.visibility = "hidden"), 4000);
|
|
}
|
|
|
|
function decode_base64(s) {
|
|
let e = {},
|
|
i,
|
|
k,
|
|
v = [],
|
|
r = "",
|
|
w = String.fromCharCode;
|
|
let n = [
|
|
[65, 91],
|
|
[97, 123],
|
|
[48, 58],
|
|
[43, 44],
|
|
[47, 48],
|
|
];
|
|
|
|
for (z in n) {
|
|
for (i = n[z][0]; i < n[z][1]; i++) {
|
|
v.push(w(i));
|
|
}
|
|
}
|
|
for (i = 0; i < 64; i++) {
|
|
e[v[i]] = i;
|
|
}
|
|
|
|
for (i = 0; i < s.length; i += 72) {
|
|
let b = 0,
|
|
c,
|
|
x,
|
|
l = 0,
|
|
o = s.substring(i, i + 72);
|
|
for (x = 0; x < o.length; x++) {
|
|
c = e[o.charAt(x)];
|
|
b = (b << 6) + c;
|
|
l += 6;
|
|
while (l >= 8) {
|
|
r += w((b >>> (l -= 8)) % 256);
|
|
}
|
|
}
|
|
}
|
|
return r;
|
|
}
|