using System.Text.Json; using System.Text.Json.Serialization; using Lagrange.Core.Common; namespace Shrink.Utility; public static class Data { public static void SaveKeystore(BotKeystore keystore) => File.WriteAllText("Keystore.json", JsonSerializer.Serialize(keystore)); public static BotDeviceInfo GetDeviceInfo() { if (File.Exists("DeviceInfo.json")) { var info = JsonSerializer.Deserialize(File.ReadAllText("DeviceInfo.json")); if (info != null) return info; info = BotDeviceInfo.GenerateInfo(); File.WriteAllText("DeviceInfo.json", JsonSerializer.Serialize(info)); return info; } var deviceInfo = BotDeviceInfo.GenerateInfo(); File.WriteAllText("DeviceInfo.json", JsonSerializer.Serialize(deviceInfo)); return deviceInfo; } public static BotKeystore? LoadKeystore() { try { var text = File.ReadAllText("Keystore.json"); return JsonSerializer.Deserialize(text, new JsonSerializerOptions() { ReferenceHandler = ReferenceHandler.Preserve }); } catch { return null; } } }