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