public async Task ReplyMovieCollectionAsync(ulong chanId, string collectionName) { var search = await _client.SearchCollectionAsync(collectionName); if (search.Results.Count < 1) { await _discordMessage.SendDiscordMessageAsync(chanId, $"No Results Found for {collectionName}"); return; } var collection = await _client.GetCollectionAsync(search.Results.First().Id); var embed = new DisukuEmbed { Title = collection.Name, Description = collection.Overview, ImageUrl = $"http://image.tmdb.org/t/p/w500{collection.BackdropPath}", Thumbnail = $"http://image.tmdb.org/t/p/w500{collection.PosterPath}", Url = $"https://www.themoviedb.org/collection/{collection.Id}", Footer = $"Collection Size: {collection.Parts.Count}" }; await _discordMessage.SendDiscordEmbedAsync(chanId, embed); }
public async Task SendDiscordEmbedAsync(ulong chanId, DisukuEmbed embed) { var channel = GetSocketTextChannel(chanId); var discordEmbed = DisukuEntityConverter.ConvertEmbed(embed); await channel.SendMessageAsync(embed : discordEmbed); }
public async Task SendDiscordMessageAsync(ulong chanId, DisukuUser user) { var formattedRoles = new StringBuilder(); foreach (var role in user.Roles) { if (role.Name == "@everyone") { formattedRoles.Append($"{role.Name}, "); continue; } formattedRoles.Append($"<@&{role.Id}>, "); } var embed = new DisukuEmbed { Title = $"Profile: {user.Username}", Description = $"**User ID:** {user.UserId}\n" + $"**Guild ID:** {user.GuildId}\n" + $"**Account Created:** {user.CreatedAt}\n" + $"**Joined Server:** {user.JoinedAt}\n" + "**Roles:**\n" + $"{formattedRoles}", Thumbnail = user.AvatarUrl }; await SendDiscordEmbedAsync(chanId, embed); }
public async Task Find(ulong chanId, string quoteName) { var quotes = await _dataStore.LoadRecordsAsync <Quote>(x => x.Name == quoteName, TableName); if (!quotes.Any()) { await _discordMessage.SendDiscordMessageAsync(chanId, "Quote with that Name 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 SendDiscordMessageAsync(ulong chanId, DisukuGuild guild) { var embed = new DisukuEmbed { Title = $"Guild Profile: {guild.Name}", Thumbnail = guild.GuildAvatar, Description = $"**ID:** {guild.GuildId}\n" + "**Channel Count:** \n" + $"⠀⠀▷ Text: {guild.TextChannelCount}, Voice: {guild.VoiceChannelCount}\n" + $"**Creation Date:** {guild.CreationDate}\n" + $"**Members:** {guild.MemberCount}" }; await SendDiscordEmbedAsync(chanId, embed); }
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 ReplyTvShowAsync(ulong chanId, string name) { var search = await _client.SearchTvShowAsync(name); var result = search.Results.First(); var embed = new DisukuEmbed { Title = result.Name, Description = result.Overview, Url = $"https://www.themoviedb.org/tv/{result.Id}", Thumbnail = $"http://image.tmdb.org/t/p/w500{result.PosterPath}", ImageUrl = $"http://image.tmdb.org/t/p/w500{result.BackdropPath}" }; 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); }
public static Embed ConvertEmbed(DisukuEmbed embed, bool inlineFields = false) { var discordEmbed = new EmbedBuilder() .WithTitle(embed.Title) .WithDescription(embed.Description) .WithCurrentTimestamp() .WithColor(Color.Blue); if (embed.Author != null && !string.IsNullOrWhiteSpace(embed.Author.Description)) { discordEmbed.WithAuthor($"{embed.Author.Username} <{embed.Author.Description}>", embed.Author.AvatarUrl); } if (embed.Author != null && string.IsNullOrWhiteSpace(embed.Author.Description)) { discordEmbed.WithAuthor(embed.Author.Username, embed.Author.AvatarUrl); } if (!string.IsNullOrWhiteSpace(embed.Url)) { discordEmbed.WithUrl(embed.Url); } if (!string.IsNullOrWhiteSpace(embed.Thumbnail)) { discordEmbed.WithThumbnailUrl(embed.Thumbnail); } if (!string.IsNullOrWhiteSpace(embed.Footer)) { discordEmbed.WithFooter(embed.Footer); } if (!string.IsNullOrWhiteSpace(embed.ImageUrl)) { discordEmbed.WithImageUrl(embed.ImageUrl); } if (embed.Fields.Count != 0) { foreach (var field in embed.Fields) { discordEmbed.AddField(field.Title, field.Description, inlineFields); } } return(discordEmbed.Build()); }
public async Task GetAffixesAsync(ulong chanId) { var affixes = await new RaiderIOClient(Region.EU).GetAffixesAsync(Region.EU); var description = new StringBuilder(); foreach (var affix in affixes.CurrentAffixes) { description.Append($"**[{affix.Name}]({affix.Url})**\n{affix.Description}\n\n"); } var embed = new DisukuEmbed { Title = affixes.Title, Description = description.ToString(), Footer = ("Powered by Raider.IO"), Thumbnail = "https://media.forgecdn.net/avatars/117/23/636399071197048271.png" }; await _discordMessage.SendDiscordEmbedAsync(chanId, embed); }