public void OnNonCommandMessageRecieved(IMessage message) { try { IEnumerable <IMessage> messages = message.Channel.GetMessagesAsync(2).FlattenAsync().Result; if (messages.Count() == 2) { MarkovHelper.AddToDict(messages.ElementAt(1).Content, message.Content); } else { MarkovHelper.AddToDict(message.Content); } } catch { } }
public void OnConnected() { DateTime start = DateTime.Now; string input = ""; MarkovHelper.LoadDict(); // Check for reset if (!MarkovHelper.SaveFileExists()) { Config.Data.LoadedMarkovTextFiles.Clear(); // Load from Discord foreach (SocketGuild guild in Program.GetGuilds()) { if (guild.Id != 473991188974927882) { foreach (SocketChannel channel in guild.Channels) { if (channel.GetType().GetInterfaces().Contains(typeof(ISocketMessageChannel))) { try { IEnumerable <IMessage> messages = ((ISocketMessageChannel)channel).GetMessagesAsync().FlattenAsync().Result; foreach (IMessage m in messages) { if (!m.Author.IsBot && !string.IsNullOrWhiteSpace(m.Content) && !m.Content.StartsWith(Program.Prefix) && m.Content[0] != '!') { input += m.Content + "\n"; } } } catch { } } } } } } // Load from text Files if (Directory.Exists(saucePath)) { string[] files = Directory.GetFiles(saucePath); foreach (string file in files) { if (!Config.Data.LoadedMarkovTextFiles.Contains(Path.GetFileName(file))) { string[] lines = File.ReadAllLines(file); foreach (string line in lines) { string trimmed = line.Trim('\n').Trim('\t').Trim(' '); if (!string.IsNullOrWhiteSpace(trimmed)) { input += trimmed + "\n"; } } Config.Data.LoadedMarkovTextFiles.Add(Path.GetFileName(file)); } } } MarkovHelper.AddToDict(input); loadedDict = true; ConsoleWrapper.WriteLine("Loaded markow in " + (DateTime.Now - start).TotalSeconds + "s", ConsoleColor.Cyan); }