public async Task Find(ulong chanId, ulong quoteId) { var quotes = await _dataStore.LoadRecordsAsync <Quote>(x => x.MessageId == quoteId, TableName); if (quotes is null || !quotes.Any()) { await _discordMessage.SendDiscordMessageAsync(chanId, "Quote with that ID was not found."); return; } var selectedQuote = quotes.FirstOrDefault(); var quoteUrl = $"https://discordapp.com/channels/{selectedQuote?.ServerId}/{selectedQuote?.ChanId}/{selectedQuote?.MessageId}"; if (!IsCodeblock(selectedQuote?.Message)) { var embed = new DisukuEmbed { Description = $"\n**Quote:** {selectedQuote?.Message}\n\n" + $"Jump: [Click Here]({quoteUrl})", Author = new Author(selectedQuote?.AuthorUsername, selectedQuote?.AuthorAvatarUrl, $"Id {selectedQuote?.MessageId}") }; await _discordMessage.SendDiscordEmbedAsync(chanId, embed); } else { var sb = new StringBuilder(); sb.Append($"{selectedQuote.AuthorUsername} : Id: <{selectedQuote.MessageId}>"); sb.Append($"{selectedQuote.Message}"); await _discordMessage.SendDiscordMessageAsync(chanId, $"{sb}"); } }
public async Task GetCharacterInfoAsync(ulong chanId, string name, string realm, string region) { Region definedRegion; switch (region.ToLower()) { case "eu": definedRegion = Region.EU; break; case "us": definedRegion = Region.US; break; case "kr": definedRegion = Region.KR; break; case "tw": definedRegion = Region.TW; break; default: definedRegion = Region.EU; break; } var client = new RaiderIOClient(definedRegion, realm, name); var characterData = await client.GetCharacterStatsAsync(); var armoryURL = $"https://worldofwarcraft.com/en-gb/character/{realm}/{name}/"; var wowanalyzeURL = $"https://www.wowanalyzer.com/character/EU/{realm}/{name}/"; var embed = new DisukuEmbed { Title = $"{characterData.Name} {characterData.Realm} | Character Info", Description = $"**Name**: {characterData.Name}\n" + $"**Links**: [Raider.IO]({characterData.Url}) | [Armory]({armoryURL}) | [WowAnalzyer]({wowanalyzeURL})\n" + $"**Class**: {characterData.Race}, {characterData.SpecName} {characterData.Class}\n" + $"**Item Level**: Equipped: {characterData.Gear.ItemLevelEquiped} | Overall: {characterData.Gear.ItemLevelAverage}\n" + $"**Raid Progression (Uldir)**: {characterData.GetRaidProgression.Uldir.Summary}\n" + $"**Mythic+**: {characterData.GetMythicPlusScores.Overall}", Thumbnail = characterData.Thumbnail }; await _discordMessage.SendDiscordEmbedAsync(chanId, embed); }
public async Task ReplyMovieAsync(ulong chanId, string name) { var search = await _client.SearchMovieAsync(name); var result = search?.Results.First(); var movieEmbed = new DisukuEmbed { Title = result.Title, Description = result.Overview, Thumbnail = $"http://image.tmdb.org/t/p/w500{result.PosterPath}", Url = $"https://www.themoviedb.org/movie/{result.Id}", ImageUrl = $"http://image.tmdb.org/t/p/w500{result.BackdropPath}", Footer = $"Release: {result.ReleaseDate?.ToShortDateString()}" }; await _discordMessage.SendDiscordEmbedAsync(chanId, movieEmbed); }