public static async Task SendMessageOrPaginatedAsync(this EduardoContext context, PaginatedMessage paginatedMsg) { if (paginatedMsg.Embeds.Count == 1) { await context.Channel.SendMessageAsync(embed : paginatedMsg.Embeds[0]); } else { await context.SendPaginatedMessageAsync(paginatedMsg); } }
public async Task SearchYouTubeAsync(EduardoContext context, string searchQuery = null) { if (searchQuery != null) { List <Video> videos = await VideoHelper.GetOrSearchVideoAsync(searchQuery); List <Embed> pageEmbeds = videos.Select((video, index) => new EmbedBuilder() .WithTitle(video.Title) .WithColor(Color.Red) .WithDescription(video.Description) .WithThumbnailUrl(video.Thumbnails.StandardResUrl) .WithUrl($"http://youtu.be/{video.Id}") .WithFooter($"Page {index + 1}", @"https://seeklogo.com/images/Y/youtube-icon-logo-521820CDD7-seeklogo.com.png") .Build()).ToList(); await context.SendPaginatedMessageAsync(new PaginatedMessage { Embeds = pageEmbeds, Timeout = TimeSpan.FromSeconds(Constants.PAGINATION_TIMEOUT_SECONDS), TimeoutBehaviour = TimeoutBehaviour.Delete }); } }