using System.Text.Json; using System.Text.Json.Serialization; namespace Disforget; public static class Utils { static Utils() { if (!File.Exists("./config.json")) { Console.WriteLine("Cannot find config.json file! Aborting..."); Environment.Exit(-4); return; } Data = JsonSerializer.Deserialize(File.ReadAllText("./config.json"))!; if (Data == null) { Console.WriteLine("Invalid config.json file! Aborting..."); Environment.Exit(-5); return; } } public static readonly UserData Data; public static void AddHeader(this HttpClient client, string h, string v) { if (!client.DefaultRequestHeaders.TryAddWithoutValidation(h, v)) { Console.Error.WriteLine($"Cannot add {h}: {v}"); Environment.Exit(-3); } } public static HttpClient CreateClient() { HttpClient cli = new(); cli.AddHeader("authority", "discord.com"); cli.AddHeader("x-discord-locale", "en-US"); cli.AddHeader("accept-language", "en-US"); cli.AddHeader("authorization", $"{Data.Token}"); cli.AddHeader("user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.21 Chrome/91.0.4472.164 Electron/13.6.6 Safari/537.36"); cli.AddHeader("accept", "*/*"); cli.AddHeader("cookie", $"{Data.Cookie}"); return cli; } }