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())); }
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())); }