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);
     }
 }
Esempio n. 2
0
        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
                });
            }
        }