public async Task <int> RemoveFromGuild(ulong guild, string term) { int retval = await MarkovHandler.RemoveTermFromFile(guild + ".txt", term); var markov = new MarkovChain <string>(1); dict.TryUpdate(guild, markov, this.dict[guild]); await LoadGraph(markov, Program.BuildPath(guild + ".txt"), guild); BuildNext(guild); return(retval); }
private async Task Markov(CommandReplyEmbed embedrep, SocketMessage msg, List <string> args) { if (!string.IsNullOrWhiteSpace(args[0])) { string sentence = string.Join(",", args.ToArray()); try { string generated = await MarkovHandler.Generate(sentence); await embedrep.Good(msg, "Markov", generated); } catch (Exception e) { await embedrep.Danger(msg, "Markov", "Something went wrong:\n" + e.ToString()); } } }
private async Task MainAsync() { var startupStr = string.Format("Bot starting up. ({0} by Michael Flaherty)", Program.VERSION); await Log(new LogMessage(LogSeverity.Info, "Startup", startupStr)); var socketConfig = new DiscordSocketConfig { WebSocketProvider = WS4NetProvider.Instance, LogLevel = LogSeverity.Verbose }; client = new DiscordSocketClient(socketConfig); commands = new CommandService(); services = new ServiceCollection().BuildServiceProvider(); messageHist = new Dictionary <ulong, List <MsgInfo> >(); triggerMap = new Dictionary <ulong, string>(); markov = new MarkovHandler(); facts = new FactHandler(); random = new Random(); client.Log += Log; client.GuildAvailable += OnGuildAvailable; client.MessageReceived += HandleCommand; await commands.AddModulesAsync(Assembly.GetEntryAssembly()); await client.LoginAsync(TokenType.Bot, config.DiscordBotToken); await client.StartAsync(); // Connect to steam and pump callbacks connection = new SteamConnection(config.SteamUsername, config.SteamPassword); connection.Connect(); if (config.GitHubUpdateRepository.Length != 0 && config.GitHubAuthToken.Length != 0) { ghClient = new GitHubClient(new ProductHeaderValue(Program.config.GitHubUpdateRepository)); ghClient.Credentials = new Credentials(config.GitHubAuthToken); } // Handle Jobs manager = new JobManager(config.JobInterval); // time in seconds to run each job if (config.SelfUpdateListener && config.GitHubAuthToken.Length != 0) { manager.AddJob(new SelfUpdateListener()); } if (config.SteamCheckJob) { manager.AddJob(new SteamCheckJob(connection)); } if (config.AlliedModdersThreadJob) { manager.AddJob(new AlliedModdersThreadJob("https://forums.alliedmods.net/external.php?newpost=true&forumids=108", "sourcemod")); } foreach (uint appid in config.AppIDList) { manager.AddJob(new UpdateJob(appid)); } manager.StartJobs(); await Task.Delay(-1); }