/// <summary> /// Function that uses <paramref name="Client"/> to help aid in sending messages to a channel. /// We use /// </summary> /// <param name="Client"></param> public async void DetermineDelivery(DiscordSocketClient Client) { Console.WriteLine(ConsoleWriteOverride.AddTimeStamp("### Delivery Check Successfully Started. ###")); var serverInformation = MoversShakersJSONController.ReadRegisteredDiscordGuilds(); foreach (var guild in serverInformation.ListOfRegisteredDiscordGuilds) { var currentGuildInformation = MoversShakersJSONController.ReadMoversShakersConfig(guild); foreach (var format in currentGuildInformation.ListOfFormats) { Enum.TryParse(format, out MTGFormatsEnum parsedEnumValue); UpdateScrapeTime(parsedEnumValue); var lastScrapeTime = GetCurrentScrapeTime(parsedEnumValue); var currentLastDeliveredTime = GetLastDeliveredTime(parsedEnumValue, guild); if (lastScrapeTime != currentLastDeliveredTime) { Console.WriteLine(ConsoleWriteOverride.AddTimeStamp($"{lastScrapeTime.ToString("hh:mm:ss")} not equal to {currentLastDeliveredTime.ToString("hh:mm:ss")}. Delivering {format.ToString()} to {guild}")); currentGuildInformation = UpdateLastDeliveredTime(currentGuildInformation, parsedEnumValue, lastScrapeTime); MoversShakersJSONController.UpdateServerInfo(currentGuildInformation); await DeliverMoversOutputAsync(Client, format, guild); } } } Console.WriteLine(ConsoleWriteOverride.AddTimeStamp("### Delivery Check Successfully Completed. ###")); }
private DateTime GetLastDeliveredTime(MTGFormatsEnum format, ulong guildId) { switch (format) { case MTGFormatsEnum.standard: return(MoversShakersJSONController.ReadMoversShakersConfig(guildId).LastDeliveredTime_Standard); case MTGFormatsEnum.modern: return(MoversShakersJSONController.ReadMoversShakersConfig(guildId).LastDeliveredTime_Modern); case MTGFormatsEnum.pioneer: return(MoversShakersJSONController.ReadMoversShakersConfig(guildId).LastDeliveredTime_Pioneer); case MTGFormatsEnum.pauper: return(MoversShakersJSONController.ReadMoversShakersConfig(guildId).LastDeliveredTime_Pauper); case MTGFormatsEnum.legacy: return(MoversShakersJSONController.ReadMoversShakersConfig(guildId).LastDeliveredTime_Legacy); case MTGFormatsEnum.vintage: return(MoversShakersJSONController.ReadMoversShakersConfig(guildId).LastDeliveredTime_Vintage); default: return(DateTime.MinValue); } }
public async Task AddFormatForScrape(string formatName) { var userInput = formatName.ToLower(); var discordServerId = Context.Guild.Id; if (Enum.IsDefined(typeof(MTGFormatsEnum), userInput)) { var serverInformation = MoversShakersJSONController.ReadMoversShakersConfig(discordServerId); if (serverInformation == null) { // Send message to user to have them set a channel. await Context.Channel.SendMessageAsync("", false, new MTGMoversShakersOutput().NoConfiguredServerErrorOutput().Build()); } else if (!serverInformation.ListOfFormats.Contains(userInput)) { // User didn't already have the format set. MoversShakersJSONController.AddChannelFormat(serverInformation, userInput); await Context.Channel.SendMessageAsync("", false, new MTGMoversShakersOutput().AddFormatSuccess(formatName).Build()); } else { // User already added format. await Context.Channel.SendMessageAsync("", false, new MTGMoversShakersOutput().FormatAlreadyExistsErrorMessage(formatName).Build()); } } else { // Let user know to check their input, not a valid format. await Context.Channel.SendMessageAsync("", false, new MTGMoversShakersOutput().IncorrectOrUnspportedFormatError().Build()); } }
public async Task DeliverMoversOutputAsync(DiscordSocketClient Client, string format, ulong guild) { var guildConfig = MoversShakersJSONController.ReadMoversShakersConfig(guild); var scrapedData = MoversShakersJSONController.GetMoverCardScrapedData($"{format}.json"); if (!(Client.GetGuild(guildConfig.serverID).GetChannel(guildConfig.channelID) is IMessageChannel channel)) { var defaultChannel = Client.GetGuild(guildConfig.serverID).DefaultChannel; channel = Client.GetGuild(guildConfig.serverID).GetChannel(defaultChannel.Id) as IMessageChannel; await defaultChannel.SendMessageAsync("", false, NoConfiguredServerErrorOutputDeliverCards().Build()); } if (scrapedData.DailyIncreaseList.Count > 0) { await channel.SendMessageAsync("", false, GetDailyIncreaseMoversOutput(scrapedData).Build()); Thread.Sleep(3000); } if (scrapedData.DailyDecreaseList.Count > 0) { await channel.SendMessageAsync("", false, GetDailyDecreaseMoversOutput(scrapedData).Build()); Thread.Sleep(3000); } //if (scrapedData.WeeklyIncreaseList.Count > 0) //{ // await channel.SendMessageAsync("", false, GetWeeklyIncreaseMoversOutput(scrapedData).Build()); // Thread.Sleep(3000); //} //if (scrapedData.WeeklyDecreaseList.Count > 0) //{ // await channel.SendMessageAsync("", false, GetWeeklyDecreaseMoversOutput(scrapedData).Build()); //} }
public async Task SetChannelConfiguration(ISocketMessageChannel channel) { var discordServerId = Context.Guild.Id; var discordServerInformation = MoversShakersJSONController.ReadMoversShakersConfig(discordServerId); if (discordServerInformation == null) { MoversShakersJSONController.UpdateServerInfo(new Models.DiscordServerChannelModel { serverID = discordServerId, channelID = channel.Id, }); // Send message - New document created. await Context.Channel.SendMessageAsync("", false, new MTGMoversShakersOutput().SetChannelSuccess(channel).Build()); } else if (!discordServerInformation.channelID.Equals(channel.Id)) { // Channel wasn't set. discordServerInformation.channelID = channel.Id; MoversShakersJSONController.UpdateServerInfo(discordServerInformation); await Context.Channel.SendMessageAsync("", false, new MTGMoversShakersOutput().SetChannelSuccess(channel).Build()); } else { // Channel was already set. await Context.Channel.SendMessageAsync("", false, new MTGMoversShakersOutput().ChannelAlreadyConfiguredErrorMessage(channel.Name).Build()); } }