static void Main(string[] args) { using (var streamReader = new StreamReader("config.yaml")) { var deserializer = new YamlDotNet.Serialization.Deserializer(); Config = deserializer.Deserialize(streamReader); Console.WriteLine("Successfully loaded configuration."); } new Thread(() => { try { DiscordSession.Connect(); } catch (Exception e) { Console.WriteLine(e.ToString()); } }).Start(); new Thread(() => { try { WikiaSession.GetChatInfo(); WikiaSession.ConnectToChat(); } catch (Exception e) { Console.WriteLine(e.ToString()); } }).Start(); new Thread(() => { int time = 1000 * 60 * int.Parse(Config["restart_timer"]); Thread.Sleep(time); Restart(); }).Start(); }
private static async Task StartAsync(string[] args) { using (var fileStream = new FileStream("config.yaml", FileMode.Open)) using (var streamReader = new StreamReader(fileStream)) { var deserializer = new YamlDotNet.Serialization.Deserializer(); config = deserializer.Deserialize(streamReader); Console.WriteLine("Successfully loaded configuration."); } bool useTimestamp = false; try { useTimestamp = bool.TryParse(config["log_timestamp"], out bool value) && value; } catch (KeyNotFoundException) { } Tools.InitLogging(useTimestamp); await WikiaSession.Init((string)config["wikia_name"], (string)config["wikia_username"], (string)config["wikia_password"]); await WikiaSession.GetChatInfo((string)config["wikia_username"]); string botToken = config["discord_bot_token"]; ulong discordChannel = ulong.Parse(config["discord_channel"]); string wikiaName = config["wikia_name"]; await DiscordSession.Init(botToken, discordChannel, wikiaName); cts = new CancellationTokenSource(TimeSpan.FromMinutes(int.Parse(config["restart_timer"]))); var completionSource = new TaskCompletionSource <object>(); cts.Token.Register(() => completionSource.TrySetCanceled()); await Task.WhenAny(WikiaSession.ConnectToChat(), completionSource.Task); }