Ejemplo n.º 1
0
        protected override async void HandleCore(Message message, IReadOnlyList <string> args)
        {
            using (var hc = new HttpClient())
            {
                var sb = new StringBuilder("http://shipwreck.jp/imascg/Image/Search?count=128");

                AppendQueryString(message, args, sb);

                var res = await hc.GetAsync(sb.ToString()).ConfigureAwait(false);

                if (res.IsSuccessStatusCode)
                {
                    var json = await res.Content.ReadAsStringAsync();

                    var iir = JsonConvert.DeserializeObject <IdolImageResult>(json);

                    if (iir.Items?.Count > 0)
                    {
                        var img = iir.Items[new Random().Next(iir.Items.Count)];

                        var newUrl = await ImageSanitizer.GetSafeUrlAsync(img.ImageUrl).ConfigureAwait(false);

                        using (var bc = new BotClient())
                        {
                            await bc.PostMessageAsync(message.Channel.Id, $"[]({newUrl})", isNsfw : false).ConfigureAwait(false);
                        }
                    }
                    else
                    {
                        using (var bc = new BotClient())
                        {
                            await bc.PostMessageAsync(message.Channel.Id, "Not Found", isNsfw : false).ConfigureAwait(false);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private static async Task PostCapturesAsync(Message message, bool verbose, AnimeDBCaptureResult cr)
        {
            var sanitized = cr.Captures.Select(c => ImageSanitizer.GetSafeUrlAsync(c.RawUrl)).ToArray();

            await Task.WhenAll(sanitized).ConfigureAwait(false);

            var sb = new StringBuilder();

            sb.Append("Found ").Append(cr.TotalCount.ToString("#,0")).Append(" images.");

            var i = 0;

            foreach (var c in cr.Captures)
            {
                var u = sanitized[i++].Result;
                if (verbose)
                {
                    sb.AppendLine();
                    sb.Append("- [").Append(c.Episode.FullTitle);
                    if (c.Position >= 0)
                    {
                        sb.Append(" ");
                        sb.Append(TimeSpan.FromSeconds(c.Position.Value).ToString("mm\":\"ss"));
                    }
                    sb.Append("](").Append(u).Append(")");
                }
                else
                {
                    sb.Append("[](").Append(u).Append(")");
                }
            }

            using (var bc = new BotClient())
            {
                await bc.PostMessageAsync(message.Channel.Id, sb.ToString(), isNsfw : false).ConfigureAwait(false);
            }
        }