Example #1
0
            public async Task Osu(IUserMessage umsg, string usr, [Remainder] string mode = null)
            {
                var channel = (ITextChannel)umsg.Channel;

                if (string.IsNullOrWhiteSpace(usr))
                    return;

                using (HttpClient http = new HttpClient())
                {
                    try
                    {
                        var m = 0;
                        if (!string.IsNullOrWhiteSpace(mode))
                        {
                            m = ResolveGameMode(mode);
                        }
                        http.AddFakeHeaders();
                        var res = await http.GetStreamAsync(new Uri($"http://lemmmy.pw/osusig/sig.php?uname={ usr }&flagshadow&xpbar&xpbarhex&pp=2&mode={m}")).ConfigureAwait(false);

                        MemoryStream ms = new MemoryStream();
                        res.CopyTo(ms);
                        ms.Position = 0;
                        await channel.SendFileAsync(ms, $"{usr}.png", $"🎧 **Profile Link: **https://osu.ppy.sh/u/{Uri.EscapeDataString(usr)}\n`Image provided by https://lemmmy.pw/osusig`").ConfigureAwait(false);
                    }
                    catch (Exception ex)
                    {
                        await channel.SendMessageAsync("💢 Failed retrieving osu signature :\\").ConfigureAwait(false);
                        _log.Warn(ex, "Osu command failed");
                    }
                }
            }
Example #2
0
        public static CookieCollection GetCookies(string url)
        {
            CookieContainer container = new CookieContainer();

            HttpResponseMessage res;
            using (var handler = new HttpClientHandler() { CookieContainer = container })
            using (var http = new HttpClient(handler))
            {
                http.AddFakeHeaders();
                http.DefaultRequestHeaders.Add("ContentType", "text/html");
                res = http.GetAsync(url).GetAwaiter().GetResult();
            }
            var response = res.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            
            return container.GetCookies(res.RequestMessage.RequestUri);
        }
 private async Task RefreshAnilistToken()
 {
     if (DateTime.Now - lastRefresh > TimeSpan.FromMinutes(29))
         lastRefresh = DateTime.Now;
     else
     {
         return;
     }
     var headers = new Dictionary<string, string> {
         {"grant_type", "client_credentials"},
         {"client_id", "kwoth-w0ki9"},
         {"client_secret", "Qd6j4FIAi1ZK6Pc7N7V4Z"},
     };
     using (var http = new HttpClient())
     {
         http.AddFakeHeaders();
         var formContent = new FormUrlEncodedContent(headers);
         var response = await http.PostAsync("http://anilist.co/api/auth/access_token", formContent).ConfigureAwait(false);
         var stringContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
         anilistToken = JObject.Parse(stringContent)["access_token"].ToString();
     }
     
 }
Example #4
0
 public static async Task<string> GetE621ImageLink(string tags)
 {
     try
     {
         using (var http = new HttpClient())
         {
             http.AddFakeHeaders();
             var data = await http.GetStreamAsync("http://e621.net/post/index.xml?tags=" + Uri.EscapeUriString(tags) + "%20order:random&limit=1");
             var doc = XDocument.Load(data);
             return doc.Descendants("file_url").FirstOrDefault().Value;
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error in e621 search: \n" + ex);
         return "Error, do you have too many tags?";
     }
 }
Example #5
0
        public static async Task<string> GetGelbooruImageLink(string tag)
        {
            using (var http = new HttpClient())
            {
                http.AddFakeHeaders();

                var webpage = await http.GetStringAsync("http://gelbooru.com/index.php?page=dapi&s=post&q=index&limit=100&tags="+ tag.Replace(" ", "_")).ConfigureAwait(false);
                var matches = Regex.Matches(webpage, "file_url=\"(?<url>.*?)\"");
                if (matches.Count == 0)
                    return null;

                var rng = new NadekoRandom();
                var match = matches[rng.Next(0, matches.Count)];
                return matches[rng.Next(0, matches.Count)].Groups["url"].Value;
            }
        }