mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-18 21:53:50 +01:00
55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
const fs = require("fs").promises;
|
|
const path = require("path");
|
|
|
|
async function getSave(file) {
|
|
const data = await fs.readFile(file, "utf8");
|
|
|
|
const save = JSON.parse(decodeURIComponent(escape(atob(data))));
|
|
const saveData = save.data;
|
|
let gameSave = {
|
|
PlayerSave: JSON.parse(saveData.PlayerSave),
|
|
CompaniesSave: JSON.parse(saveData.CompaniesSave),
|
|
FactionsSave: JSON.parse(saveData.FactionsSave),
|
|
AliasesSave: JSON.parse(saveData.AliasesSave),
|
|
GlobalAliasesSave: JSON.parse(saveData.GlobalAliasesSave),
|
|
MessagesSave: JSON.parse(saveData.MessagesSave),
|
|
StockMarketSave: JSON.parse(saveData.StockMarketSave),
|
|
SettingsSave: JSON.parse(saveData.SettingsSave),
|
|
VersionSave: JSON.parse(saveData.VersionSave),
|
|
LastExportBonus: JSON.parse(saveData.LastExportBonus),
|
|
StaneksGiftSave: JSON.parse(saveData.StaneksGiftSave),
|
|
SaveTimestamp: new Date(parseInt(saveData.SaveTimestamp ?? "0", 10)).toLocaleString(),
|
|
};
|
|
|
|
const serverStrings = JSON.parse(saveData.AllServersSave);
|
|
const servers = {};
|
|
for (const [key, value] of Object.entries(serverStrings)) {
|
|
servers[key] = value.data;
|
|
}
|
|
|
|
gameSave.AllServersSave = servers;
|
|
|
|
if (saveData.AllGangsSave) {
|
|
gameSave.AllGangsSave = JSON.parse(saveData.AllGangsSave);
|
|
}
|
|
|
|
return gameSave;
|
|
}
|
|
|
|
async function main(input, output) {
|
|
const result = await getSave(input);
|
|
await fs.writeFile(output, JSON.stringify(result, null, 2));
|
|
return result;
|
|
}
|
|
|
|
const input = path.resolve(process.argv[2]);
|
|
const output = path.resolve(process.argv[3]);
|
|
|
|
console.log(`Input: ${input}`);
|
|
console.log(`Output: ${output}`);
|
|
|
|
main(input, output).then(() => {
|
|
console.log("Done!");
|
|
});
|