Example #1
0
        public async Task GetAnimeAsync(CommandContext ctx, [RemainingText] string name)
        {
            var animes = (await Kitsu.GetAnimeAsync(name)).Data.Take(10).ToList();
            var embed  = new DiscordEmbedBuilder()
                         .WithTitle("Select anime")
                         .WithFooter(ctx.Member.GetFullName(), ctx.Member.AvatarUrl);

            for (var i = 0; i < animes.Count; i++)
            {
                var a = animes[i];
                embed.AddField($"[{i + 1}] {a.Attributes.Titles.En}({a.Attributes.Titles.JaJp})",
                               $"{a.Attributes.AverageRating?.ToString() ?? "none"}");
            }
            var index = -1;

            ToDelete.Add(ctx.Message);
            ToDelete.Add(await ctx.RespondAsync(embed: embed));
            ToDelete.Add((await Interactivity.WaitForMessageAsync(
                              x => int.TryParse(x.Content, out index) &&
                              index > 0 &&
                              index <= 10 ||
                              index == -1,
                              TimeSpan.FromSeconds(30))).Message);
            if (index == -1)
            {
                return;
            }
            var anime = animes[index - 1];

            embed.WithTitle($"{anime.Attributes.Titles.En}({anime.Attributes.Titles.EnJp})");
            embed.ClearFields();
            embed.Description = anime.Attributes.Synopsis;
            await ctx.RespondAsync(embed : embed);
        }