Пример #1
0
        public async Task SearchAlAnimeAsync([Summary("Title to search")][Remainder] string name = "Azur Lane")
        {
            Logger.LogInfo($"Searching for {name} on anilist");

            AnimeResult animeResult = await AnilistClient.GetAnimeAsync(name);

            await ReplyAsync(embed : GetAnimeResultEmbed(animeResult, 0, new EmbedFooterBuilder()));
        }
Пример #2
0
        public async Task TraceImageAsync([Summary("Image to search")][Remainder] string url = null)
        {
            Logger.LogInfo($"Tracing image {url}");

            AnimeResult animeResult = new AnimeResult();

            if (url == null)
            {
                if (Context.Message.Attachments.Count == 1)
                {
                    IAttachment attachment = Context.Message.Attachments.ElementAt(0);
                    using (WebClient wc = new WebClient())
                    {
                        byte[]      data        = wc.DownloadData(attachment.Url);
                        string      base64Data  = Convert.ToBase64String(data);
                        TraceResult traceResult = (await Client.GetTraceResultsFromBase64Async(base64Data, 1))[0];
                        animeResult = await AnilistClient.GetAnimeAsync(traceResult.AlId);
                    }
                }
                else
                {
                    var messagesEnumerable          = Context.Channel.GetMessagesAsync(2);
                    IEnumerable <IMessage> messages = await messagesEnumerable.FlattenAsync();

                    if (messages.Count() < 2)
                    {
                        await ReplyAsync($"Too Few Messages");

                        return;
                    }
                    IMessage message = messages.ElementAt(1);

                    if (message.Attachments.Count < 1)
                    {
                        await ReplyAsync("No Images Were Found On Previous Message");

                        return;
                    }
                    IAttachment attachment = message.Attachments.ElementAt(0);
                    using (WebClient wc = new WebClient())
                    {
                        byte[]      data        = wc.DownloadData(attachment.Url);
                        string      base64Data  = Convert.ToBase64String(data);
                        TraceResult traceResult = (await Client.GetTraceResultsFromBase64Async(base64Data, 1))[0];
                        animeResult = await AnilistClient.GetAnimeAsync(traceResult.AlId);
                    }
                }
            }
            else
            {
                if (url.Contains("cdn.discordapp.com"))
                {
                    await ReplyAsync("Discord image links are not supported, please send the image directly as an attachement");

                    return;
                }

                TraceResult traceResult = (await Client.GetTraceResultsAsync(url, 1))[0];
                animeResult = await AnilistClient.GetAnimeAsync(traceResult.AlId);
            }

            await ReplyAsync(embed : GetAnimeResultEmbed(animeResult, 0, new EmbedFooterBuilder()));
        }