using System; using System.Collections.Generic; using System.Text; using System.IO; using Newtonsoft.Json; using BetterSecondBotShared.Json; using BetterSecondBotShared.Static; namespace BetterSecondBotShared.IO { public class SimpleIO { protected string root_folder = ""; public void ChangeRoot(string A) { root_folder = A; if (DirExists(root_folder) == false) { System.IO.Directory.CreateDirectory(root_folder); } } public static bool DirExists(string target_folder) { return System.IO.Directory.Exists(target_folder); } public void Delete(string filename) { System.IO.File.Delete(root_folder+"/"+filename); } public void WriteFile(string filename,string content) { if(Exists(filename) == true) { Delete(filename); } System.IO.File.WriteAllText(@""+root_folder + "/" + filename, content); } public void WriteJsonConfig(JsonConfig Config, string targetfile) { JsonSerializer serializer = new JsonSerializer(); using StreamWriter sw = new StreamWriter(@"" + root_folder + "/" + targetfile); using JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented }; serializer.Serialize(writer, Config); } public void WriteJsonCommands(JsonCommandsfile commandsfile, string targetfile) { JsonSerializer serializer = new JsonSerializer(); using StreamWriter sw = new StreamWriter(@"" + root_folder + "/" + targetfile); using JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented }; serializer.Serialize(writer, commandsfile); } public void WriteJsonTokens(JsonScopedTokens tokensfile, string targetfile) { JsonSerializer serializer = new JsonSerializer(); using StreamWriter sw = new StreamWriter(@"" + root_folder + "/" + targetfile); using JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented }; serializer.Serialize(writer, tokensfile); } public void WriteJsonRelays(JsonCustomRelaysSet relays, string targetfile) { JsonSerializer serializer = new JsonSerializer(); using StreamWriter sw = new StreamWriter(@"" + root_folder + "/" + targetfile); using JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented }; serializer.Serialize(writer, relays); } public void WriteJsonAdverts(advertsBlob adverts, string targetfile) { JsonSerializer serializer = new JsonSerializer(); using StreamWriter sw = new StreamWriter(@"" + root_folder + "/" + targetfile); using JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented }; serializer.Serialize(writer, adverts); } public void WriteJsonEvents(OnEventBlob events, string targetfile) { JsonSerializer serializer = new JsonSerializer(); using StreamWriter sw = new StreamWriter(@"" + root_folder + "/" + targetfile); using JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented }; serializer.Serialize(writer, events); } public void MarkOld(string targetfile) { System.IO.File.Move(@""+root_folder + "/" + targetfile, @"" + root_folder + "/" + targetfile+".old"); } public bool Exists(string targetfile) { return File.Exists(@""+root_folder+"/" + targetfile); } public static bool FileType(string targetfile, string matchtype) { string[] bits = targetfile.Split('.'); if (bits[^1] == matchtype) { return true; } return false; } public string ReadFile(string targetfile) { if (Exists(targetfile) == true) { string return_text = ""; using (var Stream = new FileStream(@"" + root_folder + "/" + targetfile, FileMode.Open, FileAccess.Read)) using (var StreamReader = new StreamReader(Stream)) { return_text = StreamReader.ReadToEnd(); } return return_text; } return ""; } } }